如果我在visual studio中制作一个c ++项目,但只使用c函数和库,我还能获得c的速度吗?如果没有,如果我仍然使用视觉工作室,我怎么能让c项目快速运行?
答案 0 :(得分:4)
C几乎是C ++子集,但有些情况下,C表现不同。你可以在这篇文章中找到更多相关信息:Where is C not a subset of C++?
然而,编译为C ++的C代码与C相同或几乎相同。您可以尝试查看使用g++ -S source.c
和gcc -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 ++。