Supponiamo di aver scritto un programma in C++ senza utilizzare RTTI e il polimorfismo di run-time (nessuna funzione virtuale, nessuna ereditarietà virtuale) e le classi non hanno membri privati / protetti, anche i file di intestazione specifici di C++ non vengono utilizzati (es. Vengono utilizzati i file di intestazione C: cstring
, cstdio
, ... anziché string
, iostream
, ...).Un programma C++ è molto più lento di un programma C simile?
Quindi voglio scrivere un programma simile in C che il primo tipo di argomento delle funzioni corrisponda al relativo struct
.
Ad esempio:
//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);
}
è il programma C++ più lento rispetto al programma C simile (in genere)? se sì, perché i programmi C sono più veloci di allora? Lo so, il linguaggio C++ utilizza il modello di progettazione RAII per la gestione della memoria, è la ragione del lento?
Ho sentito dire che alcune persone hanno affermato che i programmi C sono più veloci ... perché?
Modifica: Perché questa domanda è chiusa? volevo sapere se C++ fa qualcosa in più di cui non abbiamo bisogno e come influenza le prestazioni (rende più lento? più veloce? o nulla?).
La risposta dipenderà dal compilatore/piattaforma/hardware. Basta compilare entrambi i programmi, punto di riferimento. Inoltre, in alcuni casi, la probabilità di causare accidentalmente un avvitamento potrebbe non valerne la velocità aggiuntiva. – SigTerm
Non chiudere. Non ti offendere ogni volta che qualcosa è paragonato a C. Vorrei per uno piacere sapere se ci sono situazioni in cui questo è il caso. –
Divertente che tu abbia sentito C è più veloce del C++, perché sono entrambi una vista dannatamente più veloce di qualsiasi altra cosa che tra loro sono piselli e fagioli. –