1.判斷是C++還是C
當用戶創建自己的程序時,有時可能需要判斷使用的是C還是C++,並對語句作相應的處理。為幫助用戶進行判斷,許多C++編譯器定義了_cplusplus常量。如果用戶使用的是標准的C編譯器,該常量將不被定義。(注:許多C++編譯器提供命令行形狀引導它們使用C++進編譯,而不是標准C)
2.使用#include <FileName.h>與#include "FileName.h"的區別
當用戶把某頭文件名放在<>內,C編譯器將首先在它的頭文件目錄中搜索指定的文件。如果編譯器找到該文件,預處理器將使用它。如果編譯器未找到該文件,編譯器將搜索當前子目錄或用戶指定的子目錄。
當用戶把某頭文件名放在""內,編譯器僅搜索當前子目錄。
3.定義多行的宏和常量
當常量與宏不能在一行內定義完。可在行末放置一個反斜槓,如下所示:
#define very_long "This Extremely long string
Constant "
4.在宏定義中不要放置分號
如果用戶在宏中使用分號,預處理器將在程序中每當宏出現時都放置一個分號;除非你想讓預處理器在宏的展開中包含分號。
5.注意宏定義中的空格
必須注意宏定義中的空格。不要在宏名及其參數之間鍵入空格。
6.如何在宏中使用括號
宏定義將參數放在括號內是為了支持表達式,但如果將表達式的每個參數都放入括號,則可確保預處理可正確計算表達式的值。
7.宏是沒有類型的