c++ - "cdecl"代表什么?

标签 c++ c calling-convention nomenclature cdecl

是的,我知道“cdecl”是一个重要的调用约定的名称,所以请不要向我解释调用约定。我要问的是缩写(?)“cdecl”实际上代表什么。我认为这是一个糟糕的命名选择,因为乍一看它让人想起“C​​ 声明符”(C 的一个相当独特的句法方面)。其实有一个程序叫cdecl其唯一目的是破译 C 声明符。但据我所知,C 声明符语法与调用约定完全无关。

简化版:“stdcall”代表“标准调用约定”。 “cdecl”代表什么?

最佳答案

它来自已声明的 C 函数(与在 K&R C 中常见的未声明的 C 函数相反)。

当时它与 pascal 调用约定(被调用者清除堆栈)共存,因此在编程语言之后调用它是有道理的。

Everything you might ever want to know about calling conventions.

关于c++ - "cdecl"代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4986844/

相关文章:

c++ - intmax 有效除法

c++ - 不同 gcc 版本中的结构成员

c++ - C/C++ 字符串文字中的未知元字符?

sql - 在 SQL 中更新大量列

c++ - 函数参数评估顺序

c++ - GCC 是否优化调用约定

java - 'this' 引用是否存储在 Java 的调用堆栈中?

c++ - C++ 中的 CURL Post 方法

c++ - 使用 G++,未定义引用 std::Makefile

c - 预期 '=' , ',' , ';' , 'asm' 或 '__attribute__' 之前 '.' token - 论坛中未列出的案例