C語言的一些預處理指令和系統標頭檔案

2021-06-04 18:45:16 字數 3356 閱讀 3054

預處理指令:

1.#include    包含乙個文字檔案的內容

2.#define     定義巨集

3.#undef      取消先前定義的某個巨集

4.#if         如果條件滿足執行指定動作

5.#ifdef      如果已經定義了某個巨集,執行指定動作

6.#ifndef     與#ifdef相反,如果沒有定義某個巨集,執行指定動作

7.#else       如果先前的#if、#ifdef或ifndef不成立,執行指定動作

8.#endif      作為#if、#ifdef或#ifndef的結束標誌

9.#elif       也就是else-if的意思,用於#if-#else的巢狀

10.#line      設定當編譯器發出警告或錯誤資訊時所使用的行號

11.#erro      指定編譯期間的錯誤及對應資訊

12.#pragma    給編譯器提供實現細節資訊

13.#          忽略此行

一些有用的系統標頭檔案

1.ctype.h     測試和修改字元函式

關於字元型別的標頭檔案操作

tolower()   轉換成小寫

toupper()   轉換成大寫

isalpha()   測試字母

islower()   測試小寫

isupper()   測試大寫

isalnum()   測試大寫或小寫

iscntrl()   測試控制符

isprint()   可列印字元包括空格

isgraph()   可列印字元不包括空格

isdigit()   是十進位制數(0-9)

isxdigit()  十六進製制基數

isblank()    標準空白字元(空格,\t)

isspace()   空格字元(空格,\t,\v,\r,\n,\f)

ispunct()   isspace()&isalnum()返回false的可列印字元

2.float.h     描述區域性浮點數狀態

在float.h中定義的部分常量                                          borland c++中的值

flt_dig         float型的有效位個數                                6

dbl_dig         double型的有效位個數                               15

ldbl_dig        long double型的有效位個數                          19

flt_epsilon     float 型的最小正數x,滿足1.0+x!=1.0                1.9209290e-07

dbl_epsilon     double型的最小正數x,滿足1.0+x!=1.0               202204460492503131e-19

ldbl_epsilon    long double 型的最小正數x,滿足1.0+x!=1.0         1.084202172485504e-19

flt_max         float型的最大值                                    3.40282347e38

dbl_max         double型的最大值                                   1.797693134862316e308

ldbl_max        long double型的最大值                              1.18973149535723e4932

flt_max_10_exp  float型允許的10為底的最大指數                      38

dbl_max_10_exp  double型允許的10為底的最大指數                     308

ldbl_max_10_exp long double型允許的10為底的最大指數                4932

3.limits.h    描述區域性整數狀態

schar_min      乙個signed char型量的最小值(下面類似)      

schar_max

uchar_max

char_min

char_max

shrt_min

shrt_max

ushrt_max

int_min

int_max

uint_max

long_min

long_max

ulong_max

4.math.h      數學函式

abs           int型數值的絕對值

fabs          float型數值的絕對值

labs          long 型絕對值

log            以e為底

log10         以10為底

pow           x^y

rand          產生隨機數

sqrt          平方根

srand          初始化隨機數發生器

exp           e的x次方

sin           正弦

costan  

sinh          雙曲正弦

cosh

tanh

acos          反余弦

asin

atan

atof          字串轉double型數值

atoi          字元竄轉int型數值

atol          字串轉long型數值

ceil          上限

floor         下限

5.setjmp.h    非區域性的轉移,包含了異常訊號的巨集定義

6.signal.h    異常處理

巨集sigabrt       非正常的終止

sigint        中斷

sigill        非法的指令

sigfpe        非法的算術指令

sigsegv       訪問非法的儲存單元

sigterm       請求程式終止

sig_dfl       當捕獲乙個指定的異常訊號時終止程式 

sig_ign       忽略乙個指定的異常訊號

7.stdarg.h    引數數量不固定的函式

8.stdio.h     輸入輸出

9.string.h    字串處理函式

參考10.time.h     時間函式

CSharp C 語言 C 中的「預處理指令」

源 指定了程式的定義,預處理指令 preprocessor directive 指示編譯器如何處理源 例如,在某些情況下,我們可能希望編譯器忽略一部分 而在其他情況下,我們可能希望 被編譯。預處理指令給了我們這樣的選項。在c和c 中有實際的預處理階段,此時預處理程式遍歷源 並且為之後的編譯階段準備文...

C 語言的預處理器指令

c 語言的預處理器指令 一 if if 使您可以開始條件指令,測試乙個或多個符號以檢視它們是否計算為 true。如果它們的計算結果確實為 true,則編譯器將計算位於 if 與最近的 endif 指令之間的所有 以 if 指令開始的條件指令必須用 endif 指令顯式終止。例如 define deb...

關於extern C 和 一些常見預處理命令

詳細內容可以參考 關於extern c 詳細剖析 在一些標頭檔案中經常見到這些語句 ifdef cplusplus 注意,是兩個下劃線 extern c endif 我們知道這段 是在c 呼叫c 的時候使用的,作用是讓c 和c 相容,防止編譯報錯 一般是鏈結錯誤,找不到某某函式。可以多問幾個為什麼,...