Quali sono le differenze tra C e C puro in C++? E voglio sapere alcuni dettagli su "Clean C" su cui è basato Lua. Qualcuno conosce queste funzionalità?Che cos'è "Clean C" e in che cosa differisce dalla C standard?
risposta
Clean C è un termine coniato nel Harbison & Steele libro (C: A Reference Manual, Prentice Hall). Si dice che un programma sia scritto in Clean C se può essere compilato da un compilatore C standard e da un compilatore C++ standard; e la sua esecuzione non produrrebbe un comportamento osservabile diverso dai due compilatori (i problemi di ottimizzazione sono irrilevanti).
@ pst "è un termine coniato nel libro Harbison & Steele" Non è questo il riferimento? – Mysticial
@pst Non riesco a trovare il numero di pagina nella mia copia H & S, ma un numero di persone si riferisce a questo termine e H & S in comp.lang.c – ouah
Provate nella sezione 1.1.5 _Standard C++ _ (p.5 nel 5 ° edizione di C: ARM). – ldav1s
Uno che mi sembra il più ovvio è che in C++, devi trasmettere il valore di ritorno di malloc. Anche le strutture vengono automaticamente digitate in C++.
Utilizzare sempre un compilatore C per codice C, non C++. C++ non è perfettamente compatibile con C.
pochi altri differenze possono essere:
- In C, dichiara func void(); dichiara una funzione che non ha specificato quali sono i suoi argomenti, mentre in C++, void func(); è equivalente a C void func (void) ', senza argomenti;
- I prototipi sono richiesti in C++, mentre generalmente è solo un avvertimento in C;
- Il tipo di costanti di caratteri (come 'a') è int in C e char in C++;
- Il tipo di stringhe letterali è char [] in C e const char [] in C++;
- Alcuni nomi di variabili legittime in C, come classe, sono parole chiave riservate in C++.
vedere anche http://david.tribble.com/text/ cdiffs.htm – Christoph
Cosa significa che 'void func()' non ha specificato i suoi argomenti? Come può essere usato praticamente? –
@VictorZamanian La convenzione di chiamata consente di passare un numero errato di argomenti in C senza arresti anomali. Ovviamente, se il chiamato fa qualcosa di male con i tuoi argomenti "non corretti", è un comportamento indefinito. Stai semplicemente dichiarando nullo il reso. C ha permesso qualche disagio estremo come quello. Penso che tutti gli argomenti che si passano a qualcosa dichiarato come tale si suppone debbano essere convertiti in int. Non sono sicuro e non mi interessa davvero trivia del genere. Dichiaro i miei parametri. :) – doug65536
- 1. Che cosa è un'operazione di consumo nello standard C++ 11?
- 2. Che cosa consente lo standard #pragma?
- 3. Libreria std C++ che collega con diversi standard C++
- 4. Che cosa significa?. significa in C#?
- 5. Che cosa significa Asterisco * in Objective-C?
- 6. Che cosa fa __asm__ __volatile__ in C?
- 7. Che cosa significa thread_local in C++ 11?
- 8. Che cosa significa [param: NotNull] in C#?
- 9. Che cosa significa "[questo]" significa in C++
- 10. Che cosa significa "@private" in Objective-C?
- 11. Che cosa significa '=>' l'operatore in C#?
- 12. c standard e bitshifts
- 13. Che cosa significa "nuovo (e variabile) valore"? in C++ fai?
- 14. Cos'è virgola mobile speculazione e in che cosa differisce dal floating point modello del compilatore
- 15. Che cosa è esattamente una variabile in C++?
- 16. In che modo l'ordine di valutazione delle espressioni differisce tra C++ e Java?
- 17. Classe di logger flessibile che utilizza flussi standard in C++
- 18. C# assemblati, che cosa è un assieme?
- 19. Che cosa significa questo attributo [Opzione (...)] C#?
- 20. Che cosa significa il parametro -clean nell'IDE di Eclipse?
- 21. C# - Che cosa equivale a "\ 0"?
- 22. Che cosa significa l'operazione c = a +++ b?
- 23. Che cosa fa l'attributo C# CoClass?
- 24. Che cosa significano __STDC_LIMIT_MACROS e __STDC_CONSTANT_MACROS?
- 25. Che cosa significa questa linea di preprocessore C/C++?
- 26. Interpreti scritti in standard C o C++
- 27. In che modo "mvn clean package" e "mvn clean install" sono diversi?
- 28. Che cosa è e = e | =
- 29. Che cosa significa questa sintassi C++ e perché funziona?
- 30. C++ in virgola mobile C++ Perché e che cos'è?
Si prega di scegliere solo una domanda da porre. –
Cos'è la C pura? – CppLearner
http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B –