程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> C語言基礎教程(四)指針、結構、聯合和枚舉(19)

C語言基礎教程(四)指針、結構、聯合和枚舉(19)

編輯:C語言基礎知識

預處理指令
由ANSI的標准規定,預處理指令主要包括:
#define
#error
#if
#else
#elif
#endif
#ifdef
#ifndef
#undef
#line
#pragma
由上述指令可以看出,每個預處理指令均帶有符號"#"。下面只介紹一些常用指令。
1.#define指令
#define指令是一個宏定義指令,定義的一般形式是:
#define 宏替換名字符串(或數值)
由#define指令定義後,在程序中每次遇到該宏替換名時就用所定義的字符串(或數值)代替它。
例如: 可用下面語句定義TRUE表示數值1, FALSE表示0。
#define TRUE 1
#define FALSE 0
一旦在源程序中使用了TRUE和FALSE,編譯時會自動的用1和0代替。
注意:
1.在宏定義語名後沒有";"
2.在Turbo C程序中習慣上用大寫字符作為宏替換名,而且常放在程序開頭。
3.宏定義還有一個特點, 就是宏替換名可以帶有形式參數,在程序中用到時,實際參數會代替這些形式參數。
例如:
#define MAX(x, y) (x>y)?x:y
main()
{
int i=10, j=15;
printf("The Maxmum is %d", MAX(i, j);
}
上例宏定義語句的含義是用宏替換名MAX(x,y)代替x,y中較大者,同樣也可定義:
#define MIN(x,y) (x<y)?x:y
表示用宏替換名MIN(x,y)代替x,y中較小者。
2.#error指令
該指令用於程序的調試,當編譯中遇到#error指令就停止編譯。其一般形式為:
#error 出錯信息
出錯信息不加引號,當編譯器遇到這個指令時,顯示下列信息並停止編譯。
Fatal: filename linename error directive
3.#include 指令
#include 指令的作用是指示編譯器將該指令所指出的另一個源文件嵌入#include指令所在的程序中,文件應使用雙引號或尖括號括起來。Turbo C庫函數的頭文件一般用#include指令在程序開關說明。
例如:
#include <stdio.h>
程序也允許嵌入其它文件,例如:
main()
{
#include <help.c>
}
其中help.c為另一個文件, 內容可為
printf("Glad to meet you here!");
上例編譯時將按集成開發環境的Options/Directories/Include directories中指定的包含文件路徑查找被嵌入文件。

4.#if、#else、#endif指令
#if、#els和#endif指令為條件編擇指令,它的一般形式為:
#if 常數表達式
語句段;
#else
語句段;
#endif
上述結構的含義是:若#if指令後的常數表達式為真,則編譯#if到#else 之間的程序段;否則編譯#else到#endif之間的程序段。
例如:
#define MAX 200
main()
{
#if MAX>999
printf("compiled for bigger\n");
#else
printf("compiled for small\n");
#endif
}

5.#undef指令
#undef指令用來刪除事先定義的宏定義,其一般形式為:
#undef 宏替換名
例如:
#define TRUE 1
...
#undef TURE
#undef主要用來使宏替換名只限定在需要使用它們的程序段中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved