宏 #define(宏名宏體)
①定義常量與命令(避免幻數)
#define MAX 100#define SIZE 1024 #define LOGIN_SUCCESS 1 #define LOGIN_FAIL 0注意:在宏定義的命名時,盡量能夠清晰的表明其用途;
宏展開只做簡單的字符替換,不做運算;
②定義宏函數
#define MAX(a, b) ((a)>(b)?(a):(b))k = MAX(i&0x0f, j&0x0f)k = ((i&0x0f)>(j&0x0f)?(i&0x0f):(j&0x0f))
注意:宏體與形參要拿()括起來
調用方式:(1)參數調用(2)表達式調用(3)語句調用
一般代碼量不大,無復雜結構或頻率高且簡單的程序中定義宏函數。
缺點:不做語法檢查;
優點:顯著提高代碼的執行效率,畢竟省去了分配和釋放棧幀、傳參、傳返回值等一系列工作;
③條件編譯:
例:#define _DEBUG_
#ifndef _DEBUG_
#define debug msg(fmt,args,……)
#else
#define debug msg(fmt,arg,……) PRintf(fmt,arg,……)
#endif
預處理命令:①宏定義 ②條件編譯 ③文件包含
新聞熱點
疑難解答