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

时间:2009-12-17 05:03:51

标签: 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编译器了吗?

    感谢。

1 个答案:

答案 0 :(得分:6)

  

我可以编译void main()

main的有效签名是:

int main(void); // no parameters 
int main(int, char **); // parameterized

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

  

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

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