Board logo

标题: 函数指针,为什么这么写是错误的 [打印本页]

作者: misssir     时间: 2008-4-25 09:50    标题: 函数指针,为什么这么写是错误的

void hello()
{
        printf("hello every one");
}

#define BYTE   unsigned char
#define WORD   unsigned int
#define DWORD  unsigned long

DWORD  ptr_hello;

void main()
{
    WORD* ptr = (WORD *)ptr_hello;
    ptr[1] = FP_SEG(&hello);
    ptr[0] = FP_OFF(&hello);

    __asm
    {
        call ptr_hello
    }
    while(!kbhit());
}

我想做一下实验,结果是编译通过,不能执行,说CPU遇到无效的命令,请教为什么这样不行呢
作者: misssir     时间: 2008-4-25 10:04    标题: 惭愧,我写错了

WORD* ptr = (WORD *)ptr_hello;
应该是 WORD* ptr = (WORD *)(&ptr_hello);