如果我把它编译为C ++,C仍然会很快吗?

时间:2017-01-19 15:28:11

标签: c++ visual-studio

如果我在visual studio中制作一个c ++项目,但只使用c函数和库,我还能获得c的速度吗?如果没有,如果我仍然使用视觉工作室,我怎么能让c项目快速运行?

2 个答案:

答案 0 :(得分:4)

C几乎是C ++子集,但有些情况下,C表现不同。你可以在这篇文章中找到更多相关信息:Where is C not a subset of C++?

然而,编译为C ++的C代码与C相同或几乎相同。您可以尝试查看使用g++ -S source.cgcc -S source.c生成的汇编代码,并比较这两个结果。别忘了,在cpp文件上运行gcc实际上会使用C ++编译器! (所以,制作一个文件test.c,第二个只是一个名为test.cpp的符号链接)

我用简单的代码尝试过它:

#include <stdio.h>
int main(int argc, char ** argv) {
    printf("Argc: %d, argv[0]: %s\n", argv[0]);
    return 5;
}

编译后的代码是100%相同的。当然,它可能(并且它将)在更复杂的例子中有所不同。

答案 1 :(得分:0)

  

如果我将它编译为C ++,C仍然会很快吗?

它可能更快或更慢,但可能相同。假设它完全编译。并且假设语言变化没有改变程序的含义。

比速度更大的问题是行为会发生变化的可能性。在C中定义行为的一些事情在C ++中有未定义的行为。

  

如何让c项目快速运行

继续使用C编译器,项目将保持原样,并且不会在运行时意外崩溃。

如果您需要/需要使用C ++编译器,请将项目转换为C ++。