C++中的什么代替了C语言中的带参数宏定义?谢谢

2025-03-01 12:06:25
推荐回答(5个)
回答1:

模板 inline函数 都不算是宏定义
都不能算完全代替宏
比如inline 函数 是否被直接替换 还是作为普通函数 编译器会自己判断的 而宏是无条件替换
模板 看起来像宏,但实际上它一般不会被带入到函数中
即编译的时候 大多数时候都是有自己的符号的

教科书的话 答案就是内联函数了
这个是唯一一个C++中 可以不产生函数本身符号 而是在编译的时候可以替换到主调函数中的语句类型

回答2:

#N表示字符串拼接,也就是不要把N当作变量,而是字符串。

此外还有用法:##变量拼接 #@变量转字符

简单的说就是用一个短的名字来代表一个长的字符串.

例如:#define PI 3.121459

程序中计算某面积时:2*3.121459*R,写为这样,是不是很麻烦呢,

可以定义个宏#define PI 3.121459

用2*PI*R代替。方便,不易错!

回答3:

#define 代替了 typedef

回答4:

只能说是类似,但是不一样的

回答5:

用 const