在我的编译器中,函数原型的打印输出如下所示:
int (__cdecl*__cdecl _set_new_handler(int (__cdecl*)(unsigned int)))(unsigned int)
我知道星号左边的__cdecl指定了一个指针的属性。在这种情况下,它是给定指针所引用的函数的调用约定。它类似于常见问题*'表示指向的数据的不变性,而不是指针本身。我徘徊为什么在同一个星号的右边有__cdecl?遵循上述逻辑,它将意味着指针的属性,例如' const char * const'表示常量指针。但是' __ cdecl'仅适用于这些功能。
答案 0 :(得分:1)
此声明中有三个功能:
_set_new_handler
,正在声明的函数; 第一个__cdecl
适用于正在返回的函数指针,第二个适用于正在声明的函数。