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.如何在宏中使用括号
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)宏定义将参数放在括号内是为了支持表达式,但如果将表达式的每个参数都放入括号,则可确保预处理可正确计算表达式的值。
7.宏是没有类型的