假设我已经用C++编写了一个程序,没有使用RTTI和运行时多态性(没有虚函数,没有虚继承),类没有私有/保护成员,也没有使用C ++特定的头文件(即使用C头文件:
然后我想用C语言编写一个类似的程序,其中函数的第一个参数类型与相关的
例如:
cstring
,cstdio
,...而不是string
,iostream
,...)。然后我想用C语言编写一个类似的程序,其中函数的第一个参数类型与相关的
struct
相对应。例如:
//C++ code
struct Custom
{
int a;
Custom() { }
void change() { }
~Custom() { }
};
int main()
{
Custom m; //init m
m.change();
//destroy m
}
/*C code*/
struct Custom
{
int a;
};
void custom_init(Custom* like_this) { }
void custom_change(Custom* like_this) { }
void custom_destroy(Custom* like_this) { }
int main()
{
Custom m;
custom_init(&m);
custom_change(&m);
custom_destroy(&m);
}
一般来说,C++程序比类似的C程序慢吗?如果是,为什么C程序更快?我知道,C++使用RAII设计模式进行内存管理,这是导致速度变慢的原因吗?
我听说有人说C程序更快...为什么呢?
编辑:为什么这个问题被关闭了?我想知道C++是否做了一些我们不需要的额外操作,以及它如何影响性能(使其变慢?变快?还是没有影响?)。