我正在尝试编译以下源代码,它可以在gcc
Microsoft 和 Microsoft 的cl.exe
.
void SomethingBeforeExit();
void SomethingBeforeExit()
{
// some code
_exit(0);
}
int main(int argc, char *argv[])
{
// some code
atexit(SomethingBeforeExit);
}
但是,我从以下消息中收到C4113 警告:cl.exe
SomeCode.c(10): warning C4113: 'void (__cdecl *)()' differs in parameter lists from 'void (__cdecl *)(void)'
正如我所说,源代码仍然可以成功编译并且似乎可以工作。我的目标是防止在 中发生此警告cl
,因为gcc
在编译时不会生成任何警告。
我假设该函数的声明没有被视为void SomethingBeforeExit(void)
,但是,我不知道如何专门将函数的参数列表声明为void
。
我正在使用VS14
and C/C++ 19.00.23918 for x86
forcl.exe
和gcc v5.4.0
编译器来比较生成的警告。