宏表達式

宏表達式

有三種宏表達式:文本表達式、邏輯表達式和算術表達式。文本表達式是任何文本、宏變數、宏函式或宏調用的組合,通常產生文本。

簡介

宏表達式一般分為3種,文本、邏輯和算術表達式。
文本表達式就是文本、宏變數、宏函式、宏調用的任意組合。文本表達式能夠被宏處理器解析從而生成文本。如&test,%macr01,%eval(1+2)等。
宏邏輯表達式和宏算術表達式就是一系列的算符和組件的組合,並且可以生成一個結果。算術表達式包含算術算符,邏輯表達式包含邏輯算符。
算術和邏輯表達式中的組件是文本,但是一個表示數字的組件可以在表達式被解析的時候被暫時地轉換成一個數值並進行相應的數值計算。14.5.1 宏處理器如何處理算術表達式默認的來說,宏處理器使用整數算法對數值進行計算,這時默認只有整數和十六進制。

帶參數宏表達式的套用

宏定義也可用來定義多個表達式,在宏調用時進行表達式的替換。請看下面的例子。
帶參數宏表達式套用
#include<stdio.h>
#define ABC(v.W,m) v=x+y;W=x*z;m=x+Y+z; /*帶參數宏表達式定義*/
main()
{
int x=2,Y=3,z=4,w,ww,mm; /*定義了幾個整型變數*/
ABC(¨vv,ww,mm); /*帶參數宏定義調用*/

printf("vv=%d\n ww=%d\n mm=%d\n",vv,ww,mm );/*螢幕顯示輸出*/

}

形式

宏表達式可以取如下形式之一:
1.[+[一]運算對象[{+|-|/|*}運算對象]
2.運算對象||運算對象[||運算對象]…
單獨在形式1中出現的運算對象或單獨在形式2中出現的運算對象可以是允許的運算對象中的任意一個.與符號或算術算符一起使用的運算對象必須是十進整數或定點宏變數.形式2的表達式可以包含從整型到字元型的轉換,這個轉換按照表式傳送規則來完成.
宏表達式細分為定點表達式和字元表達式.包含沒有賦值的宏變數的宏表達式是錯誤的.用完全跟執行時表達式一樣的辦法對宏表達式求值.

相關詞條

熱門詞條

聯絡我們