回覆列表
-
1 # 惘緯
-
2 # 玩轉嵌入式
在C預言中,#的含義是預處理命令,在這裡的作用是檔案包含,即該程式在預編譯時要包含
stdio.h
標頭檔案。#不能去掉,去掉後無法識別是預處理命令,編譯會出錯。在C語言中,預處理命令主要包含三方面的內容,分別是:1)宏定義;2)檔案包含;3)條件編譯。這三個都以#識別符號作為開頭。下面分別介紹。
預處理命令之一:宏定義宏定義又叫宏替換,宏代換,簡稱宏。宏定義的主要作用是提高程式碼的觀賞性,並能在一定程度上提高程式的執行效率。在程式設計時,可能會反覆用到一些常量,為了不用每次都把這個常量寫一遍,可以使用宏定義。如下所示:
上圖中定義了兩個宏定義,其含義時,在程式中遇到PI時就用3.1415926去代替。
預處理命令之二:檔案包含在C語言中,檔案包含是指一個原始檔可以將另一個原始檔的全部內容包含進來。其作用是在預編譯時,將指定原始檔的內容複製到當前檔案中。對於檔案的包含大家最熟悉的就是:#include <stdio.h>。在編譯檔案時,首先進行預編譯,將標頭檔案sthio中的內容引用過來,在當前檔案中直接呼叫。有兩種寫法:
1.第一種: #include<檔名>
在C語言庫函式標頭檔案所在的目錄中尋找檔案。
2.第二種:#include "檔名"
先去源程式所在資料夾下去尋找,如果找不到,再到作業系統的path路徑查詢,最後才到C語言函式標頭檔案所在的目錄中尋找檔案。
預處理命令之三:條件編譯所謂條件編譯,就是在編譯時對滿足條件的進行編譯,不滿足條件的不編譯,最常用的就是在標頭檔案編譯中,為了防止標頭檔案重複呼叫。條件編譯常用的符號有:#define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif等。
上圖中條件編譯的作用就是防止標頭檔案被重複呼叫。
由上可見,預處理命令都是以#作為開頭的,所以#不能去掉,否則編譯會出錯。
stdio.h就是指“standard input&output"
說的是標準輸入輸出標頭檔案!
用到標準輸入輸出函式時,就要呼叫這個標頭檔案。
如果不需要標準輸入輸出就不必包含這個標頭檔案。