void f();
int main(int argc, char** argv)
{
if (f)
{
// other code
}
}
在VS2017中,链接器投诉未解决的外部符号,同时与GCC一起工作.根据C99规范,它是否有效?还是它的实现细节?
void f();
int main(int argc, char** argv)
{
if (f)
{
// other code
}
}
在VS2017中,链接器投诉未解决的外部符号,同时与GCC一起工作.根据C99规范,它是否有效?还是它的实现细节?
C标准要求每个符号在正确的程序中应该恰好为defined一次,但如果不遵守规则,则不需要任何诊断.因此,如果您声明了一个从未在任何编译单元中定义的函数,则该函数的任何使用都超出了C规范.
众所周知,GCC编译器有很多扩展,其中一些也被clang接受.如果你知道你只会用GCC,你可以使用它们,如果你想写可移植的程序,你不应该使用它们.