gpt4 book ai didi

c++ - __cdecl 和 (void) 是什么意思?

转载 作者:行者123 更新时间:2023-11-27 22:34:33 25 4
gpt4 key购买 nike

我目前正在使用 WSA 编写一个 tcp/ip 服务器。经过一些故障排除后,我的一个 friend 说我应该使用 bool __cdecl winsock_server ( void ) 而不是 bool winsock_server()

但是他没有向我解释什么是__cdecl(void)是做。我已经知道 __cdecl 改变了参数在汇编程序级别上堆栈的方式,但是 (void) 是什么意思?

我应该指出,我是 C++ 的新手。我以前只用 C# 和 VB.NET 编程过。

提前致谢!

最佳答案

__cdecl
你做对了。它强制执行 c 风格的函数调用约定,从而调用函数的方式(如何传递参数,谁清理堆栈)。顺便说一句,这已经是默认的调用约定。

(void) v/s ()
C++中它们是等价的(无参数)。
C 但是前者表示没有参数,后者表示任意数量的参数。因此,当您为 C 重用头文件时可能会导致问题。

关于c++ - __cdecl 和 (void) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56471788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com