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

2025年03月01日 12:06
有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