【问题标题】:whats the difference between c compiler and c++ compiler of microsoft c/c++ compiler?c编译器和微软c/c++编译器的c++编译器有什么区别?
【发布时间】:2009-12-17 05:03:50
【问题描述】:
  1. 我可以使用 microsoft c/c++ 编译器 14.00(与 Visual Studio 2005 集成)将 void main() 编译为 c++ 源文件。这是否意味着编译器不符合主函数原型上的 c++ 标准?

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

    谢谢。

【问题讨论】:

    标签: c++ c compiler-construction


    【解决方案1】:

    我可以编译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)来更改它

    【讨论】:

    • 它还从文件扩展名(.c 或 .cpp/.cxx)推断出默认值
    • C++ 标准明确禁止main 的任何定义不返回int
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多