#define的用法不解

 我来答
郁鸾袁千山
2019-12-01 · TA获得超过3690个赞
知道大有可为答主
回答量:3096
采纳率:28%
帮助的人:197万
展开全部
该指令有三种用法:
第一种是定义标识,标识有效范围为整个程序,形如#define
XXX,常与#if配合使用;
第二种是定义常数,如#define
max
100,则max代表100(这种情况下使用const定义常数更好,因为:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误
);
第三种是定义"函数",如#define
get_max(a,
b)
((a)>(b)?(a):(b))
则以后使用get_max(x,y)就可以得到x和y中较大的数(这种方法存在一些弊病,如get_max(a++,
b)时,a++会被执行多少次取决于a和b的大小!所以建议还是用内联函数而不是这种方法提高速度。虽然有这样的弊病,但这种方法的确非常灵活,因为a和b可以是各种数据类型。)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式