Нужно ли указывать соглашение о вызовах в заголовочных и исходных файлах?
Например,
header.h
void __cdecl Foo();
source.cpp
void __cdecl Foo() { }
№
С документы :
Для нестатических функций класса, если функция определена вне строки, модификатор соглашения о вызовах не обязательно указывать в определении вне строки .То есть для нестатических методов-членов класса соглашение о вызовах, указанное во время объявления, принимается в точке определения.Учитывая это определение класса: struct CMyClass { void __cdecl mymethod(); }; это void CMyClass::mymethod() { return; } эквивалентно этому: void __cdecl CMyClass::mymethod() { return; }
Для нестатических функций класса, если функция определена вне строки, модификатор соглашения о вызовах не обязательно указывать в определении вне строки .То есть для нестатических методов-членов класса соглашение о вызовах, указанное во время объявления, принимается в точке определения.Учитывая это определение класса:
struct CMyClass { void __cdecl mymethod(); };
это
void CMyClass::mymethod() { return; }
эквивалентно этому:
void __cdecl CMyClass::mymethod() { return; }