C语言宏定义

24 篇文章 1 订阅
17 篇文章 0 订阅

3.宏定义

#define 预处理指令可以用来定义宏

宏名我们一般都大写

(1)宏可以用来给数字起名字,名字写前面,数字写后面,中间用空格分开,名字中间不允许有空格

语法:

#define 宏名 数字

在代码中使用的宏在预处理阶段被替换为他代表的内容

在某些时候宏定义和const常量有相似之处

可以使用宏代表一个再编写程序时还不知道的数字或者以后有可能变化的参数

注:可以定义一个宏不代表任何数字

除了使用#define定义宏以外,也可以在编译时使用gcc -D来定义宏

语法:

gcc -D 宏名=值 ....

(2)宏也可以给计算公式起名字

注:由于宏的处理是纯粹的字符替换,所有宏表示表达式时,应该加上括号保证优先级

(3)带参宏(宏函数)

宏也可以由参数,这些参数用来表示计算公式中未知的内容

带参宏使用二次替换的方式进行处理

注:定义带参宏,不仅整个表达式要加括号,所有的参数也应该加上括号

带参宏和函数的区别

函数中可以定义变量,宏不可以

函数有返回值宏没有,只能将宏名当成计算公式的计算结果

函数的参数有类型,而宏的参数没有类型

计算过程比较简单,不需要额外的存储空间可以使用带参宏

注:不要使用自增和自减作为宏的参数

练习:

编写一个宏改变输入英文字母的大小写

(4)宏操作符

宏操作符包括#和##,这两个操作符只能对不代表数字的宏参数使用

#操作符可以把一个宏的参数变成字符串常量

##操作符的作用对一个代表标识符的参数进行处理,可以把这个标识符和其他内容连接到一起形成一个新的标识符

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值