Saya akan melalui beberapa catatan kursus C, dan setiap file sumber program C dimulai dengan satu #
di baris pertama program.
Lalu ada baris kosong, dan mengikuti hal-hal lain diikuti oleh main
fungsi.
Apa alasannya #
?
(Sekarang sudah tidak berlaku lagi dan aku tidak bisa menanyakan hal itu.)
Ini sebuah contoh:
#
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
c
c-preprocessor
Pria Utama
sumber
sumber
#
, lalu baris kosong, lalu program.#
adalah kebingungan. Jika Anda ingin membingungkan heck out dari semua orang, Anda bisa misalnya mulai semua file sumber Anda dengan baris#//#BEGIN#\\#
(yang tidak melakukan apa-apa).Jawaban:
Wow, persyaratan ini sudah ada sejak tahun 1970-an.
Pada hari - hari awal pra-standar C, jika Anda ingin memanggil preprocessor , maka Anda harus menulis
#
sebagai hal pertama di baris pertama file sumber. Menulis hanya sebuah#
di bagian atas file affords fleksibilitas dalam penempatan arahan preprocessor lain.Dari konsep C asli oleh Dennis Ritchie yang hebat itu sendiri :
Dokumen itu membuat bacaan yang bagus (dan memungkinkan saya untuk melompat pada pertanyaan ini seperti kucing gila).
Saya curiga dosen itu hanya sentimental - belum tentu sejak ANSI C.
sumber
#
pada garis dengan sendirinya, hanya saja itu dimulai dengan#
, jadi mengapa tidak pergi langsung untuk#include
? Atau saya salah memahaminya?Tidak melakukan apa-apa
Pada standar ISO C / C ++:
Jadi dalam kompiler hari ini, hash kosong itu tidak melakukan apa-apa (seperti-
new-line ;
tidak memiliki fungsi).PS : Dalam pra-standar C ,
# new-line
memiliki peran penting, digunakan untuk memanggil C Pra-Prosesor (seperti yang ditunjukkan oleh @Bathsheba). Jadi, kode di sini ditulis dalam periode waktu itu, atau berasal dari kebiasaan.sumber
Anda perlu tahu tentang proses Kompilasi C. Karena itu adalah "harus tahu" bagaimana kode Sumber dikonversi menjadi kode biner yang dapat dieksekusi (file).
Dari Proses Kompilasi, kode sumber C harus melewati Bagian pra-prosesor. Tetapi bagaimana cara memberitahu Kompiler untuk melakukan pra-proses kode? ... Bahwa waktu # Simbol diperkenalkan pada indikator Preprocess ke kompiler.
Sebagai Contoh
#define PI 3.141
ada dalam kode Sumber. Kemudian akan berubah setelah sesi Preprocessing. Berarti, semua PI akan diubah menjadi 3.141.Seperti ini
#include <stdio.h>
, Fungsi I / O standar akan ditambahkan ke dalam kode Sumber Anda.Jika Anda memiliki mesin Linux, kompilasi like
gcc -save-temps source_code.c
. Dan lihat output kompiler.sumber