C++ 在c++;?

C++ 在c++;?,c++,c,linux,C++,C,Linux,谁能给我简单解释一下吗 < C++中的SaluLee调用是什么? 它对C++没有什么特殊之处。这是某种特定于项目的预处理器宏。我猜这是一种特殊的电话会议。我发现,这似乎是某种64位优化的调用约定。根据该文件顶部的注释,“SAL”代表“系统抽象层”。 < P>对C++没有什么特殊之处。这是某种特定于项目的预处理器宏。我猜这是一种特殊的电话会议。我发现,这似乎是某种64位优化的调用约定。根据该文件顶部的评论,“SAL”代表“系统抽象层”。它是OpenOffice.org中使用的#define。它在s

谁能给我简单解释一下吗


< C++中的SaluLee调用是什么?

它对C++没有什么特殊之处。这是某种特定于项目的预处理器宏。我猜这是一种特殊的电话会议。我发现,这似乎是某种64位优化的调用约定。根据该文件顶部的注释,“SAL”代表“系统抽象层”。

< P>对C++没有什么特殊之处。这是某种特定于项目的预处理器宏。我猜这是一种特殊的电话会议。我发现,这似乎是某种64位优化的调用约定。根据该文件顶部的评论,“SAL”代表“系统抽象层”。

它是OpenOffice.org中使用的
#define
。它在
sal/inc/sal/types.h
中定义为:

#define SAL_CALL
#define SAL_CALL __cdecl
取决于编译的平台。看起来只有在定义了
\u MSC\u VER
(适用于Microsoft)时才将其设置为后者

它用于指定以下函数:

virtual void SAL_CALL acquire() throw () { ++m_nRefCount; }
这将演变为:

virtual void acquire() throw () { ++m_nRefCount; }
对于常规编译器和:

virtual void __cdecl acquire() throw () { ++m_nRefCount; }
对微软来说

关于
\uu cdecl
对Microsoft编译器意味着什么,请参阅以下摘录:


特定于Microsoft的

这是C和C++程序的默认调用约定。因为堆栈由调用方清理,所以它可以执行

vararg
函数。
\uuu cdecl
调用约定创建的可执行文件比
\uu stdcall
大,因为它要求每个函数调用都包含堆栈清理代码。下面的列表显示了此调用约定的实现


+------------------------+----------------------------+
| Element                | Implementation             |
+------------------------+----------------------------+
| Argument-passing order | Right to left              |
+------------------------+----------------------------+
| Stack-maintenance      | Calling function pops the  |
|   responsibility       |   arguments from the stack |
+------------------------+----------------------------+
| Name-decoration        | Underscore character (_)   |
|   convention           |   is prefixed to names     |
+------------------------+----------------------------+
| Case-translation       | No case translation        |
|   convention           |   performed                |
+------------------------+----------------------------+
这是OpenOffice.org中使用的
#define
。它在
sal/inc/sal/types.h
中定义为:

#define SAL_CALL
#define SAL_CALL __cdecl
取决于编译的平台。看起来只有在定义了
\u MSC\u VER
(适用于Microsoft)时才将其设置为后者

它用于指定以下函数:

virtual void SAL_CALL acquire() throw () { ++m_nRefCount; }
这将演变为:

virtual void acquire() throw () { ++m_nRefCount; }
对于常规编译器和:

virtual void __cdecl acquire() throw () { ++m_nRefCount; }
对微软来说

关于
\uu cdecl
对Microsoft编译器意味着什么,请参阅以下摘录:


特定于Microsoft的

这是C和C++程序的默认调用约定。因为堆栈由调用方清理,所以它可以执行

vararg
函数。
\uuu cdecl
调用约定创建的可执行文件比
\uu stdcall
大,因为它要求每个函数调用都包含堆栈清理代码。下面的列表显示了此调用约定的实现


+------------------------+----------------------------+
| Element                | Implementation             |
+------------------------+----------------------------+
| Argument-passing order | Right to left              |
+------------------------+----------------------------+
| Stack-maintenance      | Calling function pops the  |
|   responsibility       |   arguments from the stack |
+------------------------+----------------------------+
| Name-decoration        | Underscore character (_)   |
|   convention           |   is prefixed to names     |
+------------------------+----------------------------+
| Case-translation       | No case translation        |
|   convention           |   performed                |
+------------------------+----------------------------+

非常感谢…它肯定会帮助我非常感谢…它肯定会帮助我这个问题,以及它的事实性的、有充分证明的、经过投票的答案,对我有直接的帮助。这似乎不太可能引起争论等。这个问题,以及它的事实性的、有充分记录的、经过投票表决的答案,对我直接有用。这似乎不太可能引起争论等。