Supongamos que he escrito un programa en C++ sin utilizar RTTI y polimorfismo en tiempo de ejecución (sin función virtual, sin herencia virtual) y las clases no tienen miembros privados/protegidos, también los archivos de encabezado específicos de C++ no se utilizan (es decir Se usan archivos de encabezado C: cstring
, cstdio
, ... en lugar de string
, iostream
, ...).¿Es un programa C++ realmente más lento que un programa C similar?
Luego quiero escribir un programa similar en C, en el cual el primer tipo de argumento de las funciones se corresponde con el relacionado struct
.
Por ejemplo:
//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);
}
es el programa de C++ más lento que el programa similar C (general)? En caso afirmativo, ¿por qué los programas C son más rápidos? Lo sé, C++ utiliza el patrón de diseño RAII para la gestión de la memoria, ¿es la razón de la lentitud?
Escuché que algunas personas dijeron que los programas C son más rápidos ... ¿por qué?
Editar: ¿Por qué esta pregunta está cerrada? Quería saber si C++ hace algo adicional que no necesitamos, y cómo afecta el rendimiento (lo hace más lento, más rápido o nada?).
La respuesta dependería del compilador/plataforma/hardware. Simplemente compila ambos programas, punto de referencia. Además, en algunos casos, las posibilidades de causar daños accidentalmente pueden no valer la pena. – SigTerm
No cierre. No te ofendas cada vez que se compara algo con C. Me gustaría saber si hay situaciones en las que este sea el caso. –
. Es gracioso que hayas escuchado que C es más rápido que C++, porque ambos son mucho más rápidos que cualquier otra cosa, entre ellos están los guisantes y los frijoles. –