在C預(yù)言中,#的含義是預(yù)處理命令,在這里的作用是文件包含,即該程序在預(yù)編譯時要包含
stdio.h
頭文件。#不能去掉,去掉后無法識別是預(yù)處理命令,編譯會出錯。在C語言中,預(yù)處理命令主要包含三方面的內(nèi)容,分別是:1)宏定義;2)文件包含;3)條件編譯。這三個都以#標識符作為開頭。下面分別介紹。
預(yù)處理命令之一:宏定義
宏定義又叫宏替換,宏代換,簡稱宏。宏定義的主要作用是提高代碼的觀賞性,并能在一定程度上提高程序的運行效率。在編程時,可能會反復(fù)用到一些常量,為了不用每次都把這個常量寫一遍,可以使用宏定義。如下所示:
上圖中定義了兩個宏定義,其含義時,在程序中遇到PI時就用3.1415926去代替。
預(yù)處理命令之二:文件包含
在C語言中,文件包含是指一個源文件可以將另一個源文件的全部內(nèi)容包含進來。其作用是在預(yù)編譯時,將指定源文件的內(nèi)容復(fù)制到當前文件中。對于文件的包含大家最熟悉的就是:#include<stdio.h>。在編譯文件時,首先進行預(yù)編譯,將頭文件sthio中的內(nèi)容引用過來,在當前文件中直接調(diào)用。有兩種寫法:
在C語言庫函數(shù)頭文件所在的目錄中尋找文件。
先去源程序所在文件夾下去尋找,如果找不到,再到操作系統(tǒng)的path路徑查找,最后才到C語言函數(shù)頭文件所在的目錄中尋找文件。
預(yù)處理命令之三:條件編譯
所謂條件編譯,就是在編譯時對滿足條件的進行編譯,不滿足條件的不編譯,最常用的就是在頭文件編譯中,為了防止頭文件重復(fù)調(diào)用。條件編譯常用的符號有:
上圖中條件編譯的作用就是防止頭文件被重復(fù)調(diào)用。
由上可見,預(yù)處理命令都是以#作為開頭的,所以#不能去掉,否則編譯會出錯。