它们之间的区别是什么
extern int (*func)(void);和
extern int *func(void);谢谢
发布于 2020-02-28 19:44:19
extern int (*func)(void);将func声明为指向不带参数并返回int值的函数的指针。
extern int *func(void);是转发声明(也称为func的一个函数,它不接受任何参数并返回一个指向int的指针。
第一个声明一个变量,第二个声明一个函数。
发布于 2020-02-28 19:52:11
如果您将类型fp声明为指向函数的指针,则编译器会将fp()解释为取消对fp的引用以获取函数的地址。
然而,如果fp被声明为函数本身,那么文件中的任何fp()都将被编译器解释为一个接近调用的来 fp的地址。
这意味着,链接器将把跳转修复为调用者地址和fp 本身的地址之间的偏移量。
不是位于fp的地址,而是偏移量to fp。
https://stackoverflow.com/questions/60451013
复制相似问题