宏定义


从宏的几种用法来说说宏的具体应用范围:

1、编译器参数和条件编译 2、定义常数 3、宏函数

一个一个说:

1、编译器参数和条件编译


这个没别的选择,绝大多数C编译器都是通过define某些宏(或者宏的值)来告知代码编译平台/硬件平台的。

同时,Makefile或者其它编译脚本希望传递某些编译参数给代码的几乎唯一方式就是宏,所以这是宏最重主要的用途。头文件里大量使用的#ifdef _XXXX_H_ 也是类似用途。

如果说普通宏函数什么的可以被替代的话,条件编译这些是很难被别的方法取代的。

避免定义宏 用全局变量代替 区别在于宏定义没有类型

比如宏定义#define pi 3.1415926这里的pi并没有类型

而全局变量放在主函数的前面 double pi=3.1415926;

建议你少用宏定义,因为宏定义存在很强的安全隐患,没有类型的变量当然在很

多时候会造成很多错误了,而且所有的宏定义都可以用其他的方式代替,一般情

况下更简便,只不过大多初学者以为宏定义看起来似乎很酷,所以初学的时候都

喜欢用,其实现在基本上已经没什么人用宏定义了,用了宏定义的程序健壮性不

行


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值