Perché alcuni nomi C++ sono brevi e talvolta difficili da comprendere come strcmp
, cout
, cin
, ecc. Ma in altri linguaggi come il nome Java non sono brevi. Fa risparmiare tempo, memoria o cosa?Perché alcuni identificatori nella libreria C++ standard sono brevi?
risposta
Ciò si applica principalmente alle porzioni della libreria C++ standard che sono state "ereditate" da C. Negli standard pre-C89 del linguaggio C la parte significativa degli identificatori esterni è stata limitata a 6 caratteri; i linker potevano ignorare i restanti personaggi. Questo è il motivo per cui la libreria C standard ha limitato la lunghezza dell'identificatore a 6 caratteri. C++ ha incorporato quella libreria "all'ingrosso", insieme a identificatori un po 'criptici.
Che dire di cout e cin non potrebbero cambiare cout to echo e cin a leggere. –
@Motubet Li scriverei come "cattiva influenza" della libreria C: in C, i descrittori di file standard sono chiamati 'stdin',' stdout' e 'stderr'; I progettisti C++ (molto probabilmente lo stesso Stroustrup) hanno sostituito 'std' (" standard ") con' c' ("character"), e mantenuto i vecchi suffissi. – dasblinkenlight
C++ eredita da C che è stato costruito molto tempo fa da programmatori che erano abituati a lavorare nell'assembler.
Ma penso che approfondisca lo sfondo matematico dei programmatori. Ci sono stati i primi tentativi di rendere le lingue più facili da capire usando termini inglesi, COBOL e SQL sono probabilmente gli unici sopravvissuti. Ma dal momento che le parole nei linguaggi di programmazione hanno un significato molto preciso, usare 'SELECT' invece di un due punti aiuta solo una piccola quantità, è comunque necessario conoscere tutti i dettagli di SQL per scrivere il resto della query.
Gli identificatori brevi rendono il codice più facile da capire per i programmatori esperti, è possibile vedere e analizzare più strutture in una sola occhiata. Se dovessi mai leggere articoli scientifici dal C17-C18 dove usano una pagina di prosa per descrivere ciò che scriveremmo in una singola equazione - capirai.
Alcune parti delle librerie C++ Standard derivano dalla libreria standard C precedente. La vecchia libreria standard C a sua volta era derivata dalla precedente libreria K & R che forniva alcune delle funzionalità di base attraverso funzioni che in altre lingue sono integrate nel linguaggio come Input/Output.
Questa sezione del manuale Rationale for the ANSI C Programming Language fornisce una descrizione delle convenzioni di denominazione per gli identificativi C.
Il linguaggio di programmazione C viene compilato e l'output del codice macchina del compilatore è collegato tra loro nelle applicazioni reali. Il software che esegue il collegamento fa generalmente parte degli strumenti standard offerti da un fornitore di sistemi operativi. Un'indagine sulle applicazioni di linker disponibili offerte da vari fornitori ha rilevato che la maggior parte dei sei caratteri di base forniti per gli identificatori esterni che potrebbero essere elaborati dai linker. Alcuni linker consentivano più tuttavia specificando un limite di sei caratteri, l'elenco dei computer di destinazione disponibili per i compilatori C era molto più grande.
Rimanendo con i limiti dei linker, ha permesso ai programmatori C di scrivere programmi C e librerie di funzioni che potevano essere utilizzate con software scritto in altre lingue e consentito l'uso di librerie scritte in altre lingue per essere utilizzate da Programmatori C
- 1. Quali classi di eccezioni sono nella libreria standard C++
- 2. boost :: alternativa opzionale nella libreria standard C++
- 3. Quanto l'estensibilità della libreria standard C influisce sui programmi C++?
- 4. Perché non c'è nessun << nella libreria standard Haskell?
- 5. Libreria standard Intel (C++)
- 6. Quali intestazioni nella libreria standard C++ sono garantite per includere un'altra intestazione?
- 7. Esiste una funzione virtuale pura nella libreria standard C++?
- 8. Perché non c'è una funzione scanl nella libreria standard Haskell?
- 9. È corretto lanciare eccezioni definite nella libreria standard C++?
- 10. versioni della libreria standard C++
- 11. Perché alcuni comandi git non sono consentiti nella directory .git?
- 12. Libreria standard matura per C
- 13. Include la libreria standard C++
- 14. I nomi nella libreria standard C++ sono scritti in inglese britannico o americano inglese?
- 15. I container standard C++ 11 sono "final"?
- 16. PEP 257 assestamento docstring nella libreria standard?
- 17. Dove sono identificati identificatori come NSControlKeyMask
- 18. Funzionamento interno della libreria standard C
- 19. Metodi free-side nella libreria standard Java
- 20. Diagnosi EXC_BAD_INSTRUCTION nella libreria standard Swift
- 21. Differenza tra libreria standard C e libreria POSIX
- 22. Libreria standard .NET rispetto allo standard .NET
- 23. Ci sono funzionalità nella libreria standard di Rust per scaricare un file da un URL
- 24. @ prefisso per identificatori in C#
- 25. Libreria di strutture dati standard in C?
- 26. "Uint32", "int16" e simili; sono C++ standard?
- 27. Gitignore non ignora alcuni file di build nella libreria Android
- 28. Matrix Libreria standard
- 29. Etichette libreria standard
- 30. libreria standard `tipo file`
Perché le persone sono pigre e la pigrizia sposta il mondo. (: – Rubens
Ma la leggibilità non è più importante –
Negli standard pre C89, la parte significativa degli identificatori esterni è stata di 6 caratteri.I linker sono stati autorizzati a ignorare i caratteri rimanenti.Questo è il motivo per cui la lunghezza dell'identificatore limitata della libreria standard è di 6 caratteri. – dasblinkenlight