|
|
|
| << | < | > | >> |Indice
Introduzione XIII
PARTE PRIMA
UNA RAPIDA PANORAMICA SU VISUAL C++
Capitolo 1
Il compilatore Visual C++, versione 5 3
1.1 Hardware consigliato 5
1.2 Una tipica installazione Windows 7
1.3 Documentazione 8
1.4 Il sistema di sviluppo 9
1.5 Novità 12
1.6 Importanti caratteristiche
del compilatore 14
1.7 Opzioni del compilatore 18
Capitolo 2
Utilizzo dell'IDE 23
2.1 Avvio dell'IDE di Visual C++ 24
2.2 Accesso alla guida
sensibile al contesto 24
2.3 Informazioni generali sui menu 25
2.4 Barre degli strumenti fisse e
mobili 26
2.5 Il menu File 27
2.6 Il menu Edit 31
2.7 Il menu View 36
2.8 Il menu Insert 39
2.9 Il menu Project 40
2.10 Il menu Build 42
2.11 Il menu Tools 45
2.12 Il menu Window 48
2.13 Il menu Help 50
Capitolo 3
Scrittura, compilazione e debugging 53
3.1 Avvio di Developer Studio 54
3.2 Creazione del primo programma 54
3.3 Modifica del codice sorgente 56
3.4 Salvataggio dei file 57
3.5 Creazione del file eseguibile 58
3.6 Debugging dei programmi 62
3.7 Esecuzione del primo programma 70
3.8 Tecniche avanzate di debugging 76
3.9 Premessa al capitolo seguente 78
Capitolo 4
Caratteristiche avanzate di Visual C++ 79
4.1 Creazione di risorse del sistema 80
4.2 Documentazione in linea 83
4.3 Strumenti di diagnostica 87
4.4 Premessa al capitolo seguente 90
PARTE SECONDA
FONDAMENTI DI PROGRAMMAZIONE
Capitolo 5
Programmazione in C e C++ 93
5.1 Storia del C 93
5.2 American National Standards
Institute, ANSI C 100
5.3 Dal C al C++ e alla programmazione
orientata agli oggetti 102
5.4 Storia del C++ 103
5.5 Componenti fondamentali
di un programma in C/C++ 109
Capitolo 6
Operazioni sui dati 123
6.1 Identificatori 124
6.2 Parole chiave 126
6.3 Tipi di dati standard
del C e del C++ 126
6.4 Modificatori di accesso 135
6.5 Modificatori pascal, cdecl,
near, far e huge 138
6.6 Conversione di tipi di dati 141
6.7 Classi di memoria 143
6.8 Operatori particolari 148
6.9 Livelli di precedenza
degli operatori 158
6.10 Librerie standard C e C++ 159
Capitolo 7
Controllo dei programma 167
7.1 Controlli condizionali 167
7.2 Controlli di ciclo 182
Capitolo 8
Scrittura e utilizzo di funzioni 201
8.1 Prototipo di una funzione 202
8.2 Argomenti delle funzioni 208
8.3 Tipi restituiti dalle funzioni 215
8.4 Argomenti della riga di comando 224
8.5 Funzioni in C e in C++ 228
8.6 Regole da non violare
per le funzioni 233
Capitolo 9
Array 239
9.1 Che cosa sono gli array? 239
9.2 Proprietà degli array 240
9.3 Dichiarazioni di array 241
9.4 Inizializzazione di array 242
9.5 Accesso agli elementi dell'array 244
9.6 Calcolo della dimensione
degli array 247
9.7 Indici degli array fuori
dai limiti 249
9.8 Output e input di stringhe 250
9.9 Array multidimensionali 252
9.10 Array come argomenti di funzioni 256
9.11 Funzioni per stringhe e
array di caratteri 264
Capitolo 10
Puntatori 271
10.1 Variabili puntatore 272
10.2 Puntatori a funzioni 296
10.3 Memoria dinamica 300
10.4 Puntatori e array:
uno sguardo ravvicinato 305
10.5 Tipo di riferimento del C++ 319
Capitolo 11
Operazioni di I/O in C 323
11.1 Funzioni per la gestione
dei flussi di dati 325
11.2 Input e output a basso
livello in C 330
11.3 Input e output di caratteri 331
11.4 Input e output di stringhe 333
11.5 Input e output di interi 335
11.6 Formattazione dell'output 338
11.7 Utilizzo di fseek(),
ftell() e rewind() 344
11.8 Formattazione dell'input 349
Capitolo 12
Introduzione alle operazioni
di I/O in C++ 353
12.1 Operazioni di I/O più semplici
con il C++ 353
12.2 Da STREAM.H a IOSTREAM.H 362
Capitolo 13
Strutture, union e altri argomenti 379
13.1 Le strutture 379
13.2 Le union 399
13.3 Argomenti vari 401
Capitolo 14
Programmazione avanzata 407
14.1 Compatibilità fra tipi 408
14.2 Le macro 411
14.3 Istruzioni al preprocessore 416
| << | < | > | >> |Pagina 93A cominciare da questo capitolo vengono trattati l'origine, la sintassi e l'utilizzo dei linguaggi C e C++. Uno studio della storia del C è utile perché spiega il successo della filosofia di progetto del linguaggio e aiuta a capire perché il C e il C++ potrebbero essere i linguaggi da scegliere per il futuro. Prima di procedere, occorre avere acquisito familiarità con l'ambiente di sviluppo Microsoft C/C++. A questo punto si dovrebbe aver già installato il pacchetto, averlo configurato secondo le proprie personali esigenze e aver provato l'utilizzo del compilatore e del debugger integrato. 5.1 Storia dei C Per trattare le origini del linguaggio C occorre iniziare a parlare del sistema operativo UNIX, dal momento che sia il sistema sia la maggior parte dei programmi che vengono eseguiti in esso sono scritti in C. Questo tuttavia non significa che il C sia legato a UNIX o a qualsiasi sistema operativo o macchina. L'ambiente di sviluppo UNIX/C ha dato al C la fama di un linguaggio di programmazione di sistemi, perché è utile per scrivere compilatori e sistemi operativi. Il C è anche utile per scrivere la maggior parte dei programmi in molti campi diversi. Il sistema operativo UNIX fu originariamente sviluppato nel 1969 su quello che sarebbe ora considerato un piccolo DEC PDP-7 presso i laboratori Bell a Murray Hill nel New Jersey. UNIX fu scritto interamente nel linguaggio assembler del PDP-7. Questo sistema operativo era stato progettato in modo da facilitare il compito del programmatore, fornendo utili strumenti di sviluppo, pochi comandi e un ambiente relativamente aperto. Subito dopo lo sviluppo di UNIX, Ken Thompson implementò un compilatore per un nuovo linguaggio chiamato B. A questo punto è utile esaminare le origini e la storia del linguaggio B di Ken Thompson, un diretto predecessore del C. Di seguito è riportato un elenco completo di linguaggi da cui deriva il C:
LINGUAGGIO ORIGINI/INVENTORE
Algol 60 Progettato da un comitato
internazionale all'inizio
del 1960.
CPL Combined Programming Language,
sviluppato a Cambridge e
all'università di Londra
nel 1963.
BCPL Basic Combined Programming
Language,
sviluppato a Cambridge da
Martin Richards nel 1967.
B Sviluppato da Ken Thompson,
Bell Labs, nel 1970.
C Sviluppato da Dennis Ritchie,
Bell Labs, nel 1972.
Poi nel 1973 fu formato il comitato dell'American National Standards Institute (ANSI) con lo scopo di creare l'ANSI C, una standardizzazione del linguaggio C. L'Algol 60 è un linguaggio apparso alcuni anni dopo l'introduzione del FORTRAN. Questo nuovo linguaggio all'epoca era più complesso ed ebbe una grande influenza sul progetto dei futuri linguaggi di programmazione; i suoi autori prestarono molta attenzione alla regolarità della sintassi, alla struttura modulare e ad altre caratteristiche di solito associate ai linguaggi strutturati ad alto livello. Sfortunatamente, l'Algol 60 non si diffuse mai veramente negli Stati Uniti, a parere di molti per l'astrazione e la genericità del linguaggio. Gli inventori del CPL (Combined Programming Language) intendevano riportare i concetti elevati dell'Algol 60 alla realtà dei computer veri. Però, come l'Algol 60, il CPL era difficile da imparare e da implementare e per questo fu anch'esso un fallimento. Attenendosi ancora al meglio offerto dal CPL, i creatori del BCPL (Basic Combined Programming Language) vollero ridurre il CPL alle sue caratteristiche fondamentali. Ken Thompson, quando progettò il linguaggio B per una prima implementazione di UNIX, stava cercando di semplificare ulteriormente il CPL. Egli riuscì a creare un linguaggio molto scarno che si adattava bene a essere utilizzato sull'hardware di cui disponeva. Tuttavia, sia per il BCPL sia per il B si esagerò troppo nell'ottimizzazione, ottenendo così linguaggi limitati, utili solo per trattare alcuni tipi di problemi. Ad esempio, subito dopo che Ken Thompson aveva implementato il linguaggio B, fu presentata una nuova macchina, chiamata PDP-11. UNIX e il compilatore B furono subito trasferiti sulla nuova macchina. Anche se la PDP-11 era una macchina più grande della precedente PDP-7, rimaneva ancora abbastanza piccola rispetto agli standard attuali: aveva soltanto 24 K di memoria, dei quali 16 K erano utilizzati dal sistema, e 512 K di disco fisso. Si pensò di riscrivere UNIX in B, ma il linguaggio B era lento per il suo progetto interpretativo. C'era anche un altro problema: il B era orientato alla parola, ma la PDP-11 era orientata al byte. Per questi motivi, nel 1971 si cominciò a lavorare a un successore del B, chiamato C. La creazione del C fu attribuita a Dennis Ritchie, che ripristinò alcune generalità perse nel BCPL e nel B. Egli realizzò questo attraverso un accorto utilizzo dei tipi di dati, conservando la semplicità e l'accesso diretto all'hardware che erano gli scopi di progetto originari del CPL.
Molti linguaggi sviluppati da persone singole (C,
Pascal, Lisp e APL) presentano una coesione interna che
manca a quelli creati da ampi gruppi di programmatori (Ada,
PL/1 e Algol 60) e inoltre riflettono il campo di competenza
|
|
Scheda con 32740 bytes di citazioni. Pubblicazione completa della scheda in attesa di autorizzazione dell'editore. | << | < | |