C语言的预处理指令

  预处理指令是c语言支持的一种特殊指令,它们以#做开头,不以;做结尾。预处理指令在编译的第一个阶段被处理,所有预处理指令都是把程序变成另外的样子,宏和变量在计算机里的处理方式完全不同。
  gcc可以使用-E选项单独处理所有预处理指令。

1 define定义宏

“#define”是一个预处理指令,这个预处理指令用来定义宏,宏定义可以给数字起名称。
定义宏时不要使用=和; 宏名称中不应该有空格

可以在gcc命令行中使用-D选项定义宏
可以定义使用参数的宏,宏的参数都没有数据类型,也没有形参和实参的区别,宏的参数个数任意,宏的参数不一定代表一个数字。不要用自增或自减的计算结果作为宏的参数。
宏没有返回值变量
宏只能使用三目运算符完成复杂的计算

编写宏的时候应该在每个代表数字的参数以及整个计算结果外边都加上括号。

#include <stdio.h>

#define   MAX(n1,n2)  n1 > n2 ? n1 : n2
#define   HEX(n)      n >= '0' && n <= '9' ? n - '0' : n - 'a' + 10

int main() {
    printf("MAX(2, 8)是%d\n", MAX(2, 8));
    printf("HEX(\'7\')是%d\n", HEX('7'));
    printf("HEX(\'d\')是%d\n", HEX(
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值