我很难理解WINAPI标签与c的关系。
例如:
BOOL WINAPI CreateProcessA(...);
这个WINAPI标签究竟是什么,它是否有更正式的名称,是否是c或实现特定的一部分?
很抱歉,如果我的问题有点令人困惑。
非常感谢!
答案 0 :(得分:4)
这是calling convention,通常定义为Windows的__stdcall
。
答案 1 :(得分:1)
它是一个宏,即预处理器将其替换为实际编译之前的#defined。具体来说,WINAPI宏被定义为告诉函数使用哪个调用约定。
答案 2 :(得分:1)
在标准术语中,它是存储类说明符(如“静态”),类型说明符(如“unsigned”)或类型限定符(如“const”)。差别很大,如果它是任何一种说明符,你就不能写
BOOL * WINAPI CreateProcessA(...);
但如果是限定符,你可以。无论如何,它是Windows编译器的非标准功能。
(我看到其他人已经指出实际上“WINAPI”是一个宏,但它是一个由实现提供的宏,因此你应该将它视为一种语言特性,而不是看它扩展了什么到。)
答案 3 :(得分:-1)
#define WINAPI __stdcall
这意味着CreateProcessA
的参数将从左到右计算。