我目前正在使用 WSA 对 tcp/ip 服务器进行编程。经过一些故障排除后,我的一个朋友说我应该使用bool __cdecl winsock_server ( void )而不是bool winsock_server().
但他没有向我解释什么__cdecl和(void)
正在做什么。我已经知道这__cdecl改变了在汇编程序级别上将参数放入堆栈的方式,但这是什么(void)意思?
我应该指出我是 C++ 的新手。我之前只用 C# 和 VB.NET 编程。
提前致谢!
__cdecl
你做对了。它将函数调用约定强制为 c 样式,从而调用函数的方式(如何传递参数,谁清理堆栈)。顺便说一句,这已经是默认的调用约定。
(void)V / S()
在C++它们是等效的(无参数)。
在C但前者表示没有参数,后者意味着任何数量的参数。因此,当您将头文件重用于C.