【发布时间】:2019-05-05 06:31:02
【问题描述】:
我需要在头文件和源文件中指定调用约定吗?
例如,
header.h
void __cdecl Foo();
source.cpp
void __cdecl Foo()
{
}
【问题讨论】:
标签: c++ visual-c++ language-lawyer
我需要在头文件和源文件中指定调用约定吗?
例如,
header.h
void __cdecl Foo();
source.cpp
void __cdecl Foo()
{
}
【问题讨论】:
标签: c++ visual-c++ language-lawyer
没有。
来自the docs:
对于非静态类函数,如果函数是外联定义的,调用约定修饰符不必在外联定义中指定。也就是说,对于类非静态成员方法,声明期间指定的调用约定在定义点被假定。鉴于此类定义:
struct CMyClass { void __cdecl mymethod(); };这个
void CMyClass::mymethod() { return; }等价于:
void __cdecl CMyClass::mymethod() { return; }
【讨论】: