預處理指令
預處理指令
1.#define 宏定義
普通——#define 宏名 字符串
#define MY_INT int
#define MAX 10000
帶參數——#define 宏名(形參) 字符串
#define add(x,y) x+y
2.條件編譯
在大規模的開發過程中,特別是跨平台和係統的軟件裏,條件編譯很重要。
#include <iostream> using namespace std;#ifndef cc #define cc #define add(x,y) x+y #define n 3 #endif int main( ) { cout<<2*add(n,4);//輸出為10,因為優先級 return 0; } #undef cc// 是在後麵取消以前定義的宏定義
3.assert ()宏
assert()是一個調試程序時經常使用的宏,在程序運行時它計算括號內的表達式,如果表達式為FALSE (0), 程序將報告錯誤,並終止執行。如果表達式不為0,則繼續執行後麵的語句。
#include <iostream> using namespace std; int main(int argc, char *argv[]) { char* a=NULL; char *b="hi"; assert(b);//括號內表達式為真,什麼也不做,正常通過。 assert(a); return 0; }
運行截圖:
4.#pragma 預處理
pragma [p'ræɡmə] n. 編譯指示.
#pragma 編譯指示是機器或操作係統專有的,且對於每個編譯器都是不同的。
#pragma once
隻要在頭文件的最開始加入這條指令就能夠保證頭文件被編譯一次.
#pragma comment
常用的有#pragma comment (lib,"XXX.lib") 指定包含的庫文件。
#pragma pack(n)
結構體字節對齊。
最後更新:2017-04-03 12:56:23