【发布时间】:2012-07-05 01:02:01
【问题描述】:
我在我正在修改的程序上看到了这个:
static const void *method()
{
// other code
return anotherMethod(param1,param2);
}
据我所知,这将返回一个指向函数的指针。现在基于this,我试图弄清楚static const void 的应用:
int f(void);
int *fip(); //Function returning int pointer
int (*pfi)(); //Pointer to function returning int
那么添加static const 的真正优势是什么(假设这应用于指定函数的返回值)。另外,是否会调用指向函数的返回指针?或者它只是一个指向它的指针?因为从代码中我有以下内容:
void start()
{
method();
}
我假设它会被调用,否则它会被分配给一个指针。
【问题讨论】:
-
只是一个旁注:我相信你混淆了 C 和 C++。在 C++ 中,
start()表示start(void),前者是鼓励风格。但在 C 语言中,start()的意思是“函数接受各种垃圾参数,希望出现细微的错误”。在 C 语言中,你应该总是写start(void)。没有参数的函数在 C 标准中被标记为过时的功能,并且将来可能会从语言中删除(请参阅 C11 6.11.6)。 -
我实际上是在objective-c上下文中使用的,方法的名称是完全任意的。但感谢旁注..
标签: objective-c c function-pointers void-pointers