大家知道計算機使用的一系列的1和0 那個一個C++語言程序又是如何從一個個.h和.cpp文件變成包含1和0的可執行文件呢? 可以認為有以下的幾個階段 源程序->預處理->編譯和優化->生成目標文件->鏈接->可執行文件 1.預處理 C++的預處理是指在C++程序源代碼被編譯之前,由預處理器對C++程序源代碼進行的處理。這個過程並不對程序的源代碼進行解析。 這裡的預處理器(preprocessor)是指真正的編譯開始之前由編譯器調用的一個獨立程序。 預處理器主要負責以下的幾處 1.宏的替換 2.刪除注釋 3.處理預處理指令,如#include,#ifdef 如我們有以下代碼 temp.h 復制代碼 #ifndef _HEADERNAME_H #define _HEADERNAME_H 1 #include <iostream> inline void show(char *a) { std::cout << a<< std::endl;//annotation } #endif 復制代碼 main.cpp 復制代碼 #include "temp.h" #define MACRO "This is a macro" extern int i; int main() { std::cout<<i<<std::endl; show(MACRO);