1
我可以用microsoft c/C++编译器14.00(与visual studio 2005集成)编译void main()作为C++源文件。所以这意味着编译器不符合主函数上的C++标准原型?微软C/C++编译器的C编译器和C++编译器有什么区别?
是微软的c/C++编译器只有一个编译器,也就是它只有一个C++编译器?因为C源文件可以编译为C++源文件,所以不需要再开发c编译器了?
谢谢。
我可以用microsoft c/C++编译器14.00(与visual studio 2005集成)编译void main()作为C++源文件。所以这意味着编译器不符合主函数上的C++标准原型?微软C/C++编译器的C编译器和C++编译器有什么区别?
是微软的c/C++编译器只有一个编译器,也就是它只有一个C++编译器?因为C源文件可以编译为C++源文件,所以不需要再开发c编译器了?
谢谢。
我可以编译
void main()
主要的有效签名是:
int main(void); // no parameters
int main(int, char **); // parameterized
其他的都是不规范。该标准确实允许实现允许main()
的替代签名。
是微软的c/C++编译器只有一个编译器,也就是说,它只有一个C++编译器?
是的,它是一个可执行文件(cl.exe
)。但是,它可以作为C编译器或C++编译器工作。缺省值是C++编译器模式。您可以通过进入改变这一项目属性> C/C++>高级(/TP
或/TC
)
它还推断从文件扩展名的默认(.c和的.cpp/.CXX) – 2009-12-17 05:10:17
C++标准明确禁止任何定义'main'不返回'int'。 – 2015-11-10 01:41:33