在C++中,預處理器指令是在編譯之前由預處理器處理的指令。它們以井號(#)開頭。以下是一些常用的C++預處理器指令:
#include
用于包含頭文件。
#include <iostream> // 包含標準輸入輸出庫
#include "myheader.h" // 包含自定義頭文件
#define
用于定義宏常量或宏函數。
#define PI 3.14159
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#undef
用于取消定義宏。
#undef PI
#if
, #ifdef
, #ifndef
, #else
, #elif
, #endif
用于條件編譯。
#if defined(USE_DEBUG)
std::cout << "Debug mode is enabled." << std::endl;
#else
std::cout << "Debug mode is disabled." << std::endl;
#endif
#pragma
用于向編譯器發出特定的指令。
#pragma once // 確保頭文件只被包含一次
#pragma pack(push, 1) // 設置結構體對齊方式為1字節對齊
#pragma pack(pop) // 恢復默認對齊方式
#error
用于在預處理階段產生編譯錯誤。
#error "This code is not supported in this version of the compiler."
#warning
用于在預處理階段產生編譯警告。
#warning "This code is deprecated."
#line
用于改變源代碼行號和文件名,通常用于調試。
#line 100 "newfile.cpp"
#ident
用于在編譯時插入標識符字符串。
#ident "MyProgram v1.0"
#pragma once
雖然不是標準C++的一部分,但許多編譯器(如GCC和MSVC)都支持它,用于確保頭文件只被包含一次。
#pragma once
這些是CentOS和其他Linux發行版上常用的C++預處理器指令。根據具體的編譯器和項目需求,可能還會有一些特定的預處理器指令可用。