
正文
c语言的函数名实际上是_ c语言函数名可以有数字吗
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
解释一下typedef int (CALLBACK *SHUTDOWNDLG)(int)这句话的意思
这是一个回调函数类型定义,函数的回值是int 类型,并且有一个int 类型的参数。
typedef int (CALLBACK *SHUTDOWNDLG) (int)
说明是类型定义 返回值 回调 指针 参数
在C语言里,函数名实际上是一个指向函数起始地址的指针。
这样定义后就可以用以下的方式定义函数:
SHUTDOWNDLG ShutdownDlg;
接着就可以把一个类型相同的函数的地址赋给 ShutdownDlg,比如用API函数 GetProcAddress 返回的函数地址,然后我们就可以调用函数了,比如:
Shutdown(4);
为什么要这样做呢,原因是,有时我们需要调用一个DLL中的函数,但事先没有这个函数的定义,虽然我们知道这个函数的函数名和参数类型,但编译器不知道啊,如果我们直接调用的话,将无法编译。所以要先定义,再用LoadLibrary加载DLL,然后用 GetProcAddress 找到这个函数的地址,最后才能调用函数。
相关问答
Q1: C语言中,函数名代表函数的入口地址吗!!!求大神!求解析
要知道main函数也是由其c语言的函数名实际上是_他c语言的函数名实际上是_的程序调用的。
我们编写的程序,最终是不存在所谓的函数名的,有的只有内存单元地址0xffeedd00.
我们的程序执行时,程序加载到内存,比方说整个程序所占用的内存范围是0xffee0000 ~ 0xffeedd00,这么多。
假设程序有一个小函数fun(),那么它的范围可能是0xffee0000~0xffee00ff。
那么函数fun()的入口地址是多少? 0xffee0000。。
那么函数名fun实际上就是0xffee0000的别称。
你用一个指针指向这个函数,那么你把 指针 = 函数名,实际就是把0xffee0000这个内存单元的地址给指针p。
所以,结论是:
函数名 是 程序在执行时, 函数所占内存单元块的 首地址 的别称。
Q2: c语言中函数名就是地址吗
函数名在主函数里是个接口或者叫入口,你可以通过定义一个指针来指向他
void * p;
int fun(int a);
p=fun;
Q3: c程序 函数名是什么
函数名
就是函数c语言的函数名实际上是_的名字c语言的函数名实际上是_,只要符合命名规范的名字都可以作为函数名
例如
int
fun()
{
}
那么这个函数的名字就是
fun
int
fun2()
{
}
那么这个函数的名字就是
fun2
c语言的函数名实际上是_的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言函数名可以有数字吗、c语言的函数名实际上是_的信息别忘了在本站进行查找喔。







