Errori di sintassi sono istruzioni che il compilatore non è in grado di interpretare. In pratica, non sono istruzioni C. Il compilatore segnala sempre un errore di questo tipo e non porta a termine la compilazione (cioè non genera un programma eseguibile).
Un errore di logica è molto più pericoloso di un errore di sintassi, in quanto risulta in una istruzione che è perfettamente legale in C, ma non fa ciò che il programmatore intende.
Nella maggior parte dei casi il programma viene compilato tranquillamente, ma al momento dell'esecuzione non dà il risultato voluto. A volte il compilatore cerca di aiutare il programmatore inviandogli dei messaggi di warning, tuttavia questi sono solo degli avvisi ed un programma eseguibile viene comunque generato.
Leggere attentamente i warning inviati dal compilatore spesso aiuta a scoprire gli errori di logica, per questo in laboratorio abbiamo usato spesso l'opzione -Wall del compilatore.