C adalah bahasa bentuk bebas . Itu berarti Anda dapat memformatnya dengan banyak cara dan itu akan tetap menjadi program yang legal.
Misalnya pernyataan seperti
a = b * c;
bisa ditulis seperti
a=b*c;
atau suka
a
=
b
*
c
;
Jadi ketika kompiler melihat garis
temp = *a
*a = *b;
menurutnya itu berarti
temp = *a * a = *b;
Itu tentu saja bukan ekspresi yang valid dan kompilator akan mengeluh tentang hal itu alih-alih titik koma yang hilang. Alasan tidak valid adalah karena a
merupakan pointer ke struktur, jadi *a * a
mencoba mengalikan struktur instance ( *a
) dengan pointer ke struktur ( a
).
Meskipun kompilator tidak dapat mendeteksi titik koma yang hilang, ia juga melaporkan kesalahan yang sama sekali tidak terkait pada baris yang salah. Ini penting untuk diperhatikan karena tidak peduli seberapa banyak Anda melihat baris di mana kesalahan dilaporkan, tidak ada kesalahan di sana. Terkadang masalah seperti ini mengharuskan Anda untuk melihat baris sebelumnya untuk melihat apakah mereka baik-baik saja dan tanpa kesalahan.
Terkadang Anda bahkan harus melihat file lain untuk menemukan kesalahannya. Misalnya jika file header menentukan struktur yang terakhir dilakukan di file header, dan titik koma yang mengakhiri struktur tidak ada, maka kesalahan tidak akan ada di file header tetapi di file yang menyertakan file header.
Dan terkadang menjadi lebih buruk: jika Anda menyertakan dua (atau lebih) file header, dan yang pertama berisi deklarasi yang tidak lengkap, kemungkinan besar kesalahan sintaks akan ditunjukkan di file header kedua.
Terkait hal ini adalah konsep kesalahan tindak lanjut . Beberapa kesalahan, biasanya karena titik koma hilang, dilaporkan sebagai beberapa kesalahan. Inilah mengapa penting untuk memulai dari atas saat memperbaiki kesalahan, karena memperbaiki kesalahan pertama mungkin membuat beberapa kesalahan hilang.
Hal ini tentu saja dapat menyebabkan perbaikan satu kesalahan pada satu waktu dan seringnya mengkompilasi ulang yang dapat merepotkan dengan proyek besar. Mengenali kesalahan tindak lanjut semacam itu adalah sesuatu yang datang dengan pengalaman, dan setelah melihatnya beberapa kali, lebih mudah untuk menggali kesalahan sebenarnya dan memperbaiki lebih dari satu kesalahan per kompilasi ulang.