-
-
调用地址函数?
-
发表于:
2005-1-13 19:15
4039
-
要调用下面的add函数 比如这个函数在0x04008000这地方 那么把下面改改
fn1=(pfn)0x04008000;
(*fn1)(1,5);
这样行吗?
#include <stdio.h>
typedef int (*pfn) (int,int);
int add(int a,int b){
int c;
c=a+b;
printf("\n%d\n",c);
}
main()
{
// printf("ddd"); 只要把这行注释"//"去掉 就有N多错误 这是怎么回事?
pfn fn1;
fn1=add;
printf("func start\n");
(*fn1)(1,5);
getchar();
}
--------------------Configuration: add - Win32 Release--------------------
Compiling...
add.c
D:\11111\add\add.c(13) : error C2275: 'pfn' : illegal use of this type as an expression
D:\11111\add\add.c(2) : see declaration of 'pfn'
D:\11111\add\add.c(13) : error C2146: syntax error : missing ';' before identifier 'fn1'
D:\11111\add\add.c(13) : error C2065: 'fn1' : undeclared identifier
D:\11111\add\add.c(14) : warning C4047: '=' : 'int ' differs in levels of indirection from 'int (__cdecl *)(int ,int )'
D:\11111\add\add.c(16) : error C2100: illegal indirection
D:\11111\add\add.c(16) : error C2064: term does not evaluate to a function
Error executing cl.exe.
add.obj - 5 error(s), 1 warning(s)
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课