模板 inline函数 都不算是宏定义
都不能算完全代替宏
比如inline 函数 是否被直接替换 还是作为普通函数 编译器会自己判断的 而宏是无条件替换
模板 看起来像宏,但实际上它一般不会被带入到函数中
即编译的时候 大多数时候都是有自己的符号的
教科书的话 答案就是内联函数了
这个是唯一一个C++中 可以不产生函数本身符号 而是在编译的时候可以替换到主调函数中的语句类型
#N表示字符串拼接,也就是不要把N当作变量,而是字符串。
此外还有用法:##变量拼接 #@变量转字符
简单的说就是用一个短的名字来代表一个长的字符串.
例如:#define PI 3.121459
程序中计算某面积时:2*3.121459*R,写为这样,是不是很麻烦呢,
可以定义个宏#define PI 3.121459
用2*PI*R代替。方便,不易错!
#define 代替了 typedef
只能说是类似,但是不一样的
用 const