Pikirkan beberapa masalah yang dapat terjadi jika tidak ada baris baru. Menurut standar ANSI, #include
file di awal memasukkan file persis seperti di depan file dan tidak menyisipkan baris baru setelah #include <foo.h>
setelah isi file. Jadi jika Anda memasukkan file tanpa baris baru di akhir parser itu akan dilihat seolah-olah baris terakhir foo.h
berada di baris yang sama dengan baris pertama foo.cpp
. Bagaimana jika baris terakhir foo.h adalah komentar tanpa baris baru? Sekarang baris pertama foo.cpp
dikomentari. Ini hanya beberapa contoh dari jenis masalah yang dapat merambah.
Hanya ingin menunjukkan pihak yang tertarik pada jawaban James di bawah ini. Sementara jawaban di atas masih benar untuk C, standar C ++ yang baru (C ++ 11) telah diubah sehingga peringatan ini seharusnya tidak lagi dikeluarkan jika menggunakan C ++ dan kompiler yang sesuai dengan C ++ 11.
Dari standar C ++ 11 melalui pos James:
File sumber yang tidak kosong dan yang tidak diakhiri dengan karakter baris baru, atau yang berakhir dengan karakter baris baru segera didahului oleh karakter backslash sebelum terjadi penyambungan seperti itu, harus diproses seolah-olah ada tambahan baru karakter baris ditambahkan ke file (C ++ 11 §2.2 / 1).
cat
memiliki file dan tidak memiliki baris tambahan karena prompt shell baru akan muncul setelah baris terakhir file (yaitu tidak di kolom 0)