什么是微软c/c ++编译器的c编译器和c ++编译器之间的区别?

Jic*_*hao 2 c c++ compiler-construction

  1. 我可以使用microsoft c/c ++编译器14.00(与visual studio 2005集成)将void main()编译为c ++源文件.那么这是否意味着编译器不符合主函数原型上的c ++标准?

  2. microsoft c/c ++编译器只有一个编译器,也就是说,它只是一个c ++编译器?因为C源文件可以编译为C++源文件,所以不再需要开发c编译器了吗?

    谢谢.

dir*_*tly 6

我可以编译 void main()

主要的有效签名是:

int main(void); // no parameters 
int main(int, char **); // parameterized
Run Code Online (Sandbox Code Playgroud)

其他一切都不标准.该标准允许实现允许备用签名main().

microsoft c/c ++编译器只有一个编译器,也就是说,它只是一个c ++编译器?

是的,它是一个可执行文件(cl.exe).但是,它可以作为C编译器或C++编译器工作.默认为C++编译器模式.您可以通过进入项目属性> C/C++>高级(/TP/TC)来更改此设置

  • 它还从文件扩展名(.c或.cpp/.cxx)推断出默认值 (4认同)