Struttura del corso
Introduzione
- Panoramica delle funzionalità e delle applicazioni di C
Preparazione dell'ambiente di sviluppo
- Scelta di un IDE
- Configurazione del compilatore
Scrittura di un programma di esempio
- Definizione del problema
- Codifica in base alle esigenze
Definizione dell'ambito di variabili e funzioni
- Comprendere l'ambito, la visibilità e la durata
- Utilizzo delle classi di archiviazione: auto, extern, register, static
Gestione dei dati in un programma C
- Oltre i tipi di dati primitivi
- Lavorare con tipi di dati avanzati: strutture, liste concatenate, ecc.
- Memorizzazione di diversi tipi di dati nella stessa posizione di memoria
Modifica delle proprietà di una variabile
- Oltre i modificatori di tipo
- Utilizzo dei qualificatori di tipo: costante, volatile e così via.
Manipolazione delle punte in C
- Utilizzo di dati di dimensioni inferiori a un byte
- Utilizzo degli operatori di manipolazione dei bit
Controllo del flusso del programma
- Oltre il sequenziamento
- Utilizzo dell'istruzione goto
Lettura e scrittura dei dati
- Riepilogo delle funzioni di Input/Output
- Miglioramento della leggibilità dell'output
Sviluppo di codice multipiattaforma
- Informazioni sulle direttive del compilatore
- Compilazione condizionale del codice
Miglioramento delle prestazioni del programma
- Macro e funzioni a confronto
- Definizione di macro per l'esecuzione di frammenti di programma
Allocazione dinamica della memoria
- Vantaggio dell'utilizzo dei puntatori: velocità di esecuzione
- Puntatori alle funzioni
- AccessMemoria e manipolazione dell'indirizzo
Debug di un programma C
- Tecniche avanzate per il controllo, il rilevamento e la correzione degli errori
- Lavorare con gdb (Gnu Debugger)
Creazione di una libreria statica
- Come una libreria statica viene collegata a un file eseguibile
- Creazione di una libreria statica
Creazione di una libreria condivisa
- Librerie statiche e librerie condivise (librerie dinamiche)
- Come una libreria condivisa viene collegata e caricata in memoria in fase di esecuzione
- Creazione di una libreria condivisa
Astrazione dei dati nel programma
- Panoramica dell'interfaccia, delle specifiche e dell'implementazione
- Creazione di un tipo di dati astratto
- Test di regressione di un tipo di dati astratto
SearchInserimento e ordinamento dei dati
- SearchArray che utilizzano la ricerca lineare, la ricerca binaria, ecc.
- Ordinamento di matrici usando l'ordinamento di selezione, l'ordinamento di inserimento, l'ordinamento a bolle
Interprocesso Communication e segnali
- Comprendere processi, socket e segnali
- Implementazione di IPC utilizzando file condivisi, memoria condivisa, pipe, code di messaggi, socket, semafori, ecc.
Esecuzione parallela del programma C
- Esecuzione simultanea di diverse parti di un programma tramite il multithreading
- Scrivere un thread
Rete avanzata Programming
- Riepilogo di TCP, UDP, IP e altri protocolli dominanti
- Servire più porte, sopravvivere a improvvise interruzioni della rete, ecc.
- Scrittura di potenti API socket
Verso un codice di alta qualità
- Peer code review e programmazione parallela
- L'importanza della codifica iterativa (refactoring)
Riassunto e conclusione
Requisiti
- Esperienza di programmazione C
Pubblico
- Programmatori
- Gli sviluppatori
Recensioni (2)
Gli esercizi e la metodologia
Javier MIllan Rios - si
Corso - Advanced C Programming
Traduzione automatica
An interesting and broad scope