c语言宏定义字符串 换行_宏定义函数 字符串 多行书写采用\换行

本文介绍了C语言中的宏定义,包括无参数宏定义和带参数宏定义。无参数宏定义常用于定义常量,如# define TRUE 1。带参数宏定义如# define MAX(A, B) ((A) > (B)? (A) : (B)),用于比较大小。宏定义可以跨行书写,使用""""续行。需要注意的是,宏定义在预处理阶段进行,不进行语法检查,错误可能在编译阶段发现。此外,宏定义的参数需要正确括号以保持独立性,例如正确的SQR宏定义应为# define SQR((x)*(x))。" 4596248,677825,网络服务器系统架构设计探讨,"['服务器', '网络', '多线程', 'tcp', '架构设计']
摘要由CSDN通过智能技术生成

宏定义有无参数宏定义和带参数宏定义两种。

无参数的宏定义的一般形式为 # define 标识符 字符序列

其中# define之后的标识符称为宏定义名(简称宏名),要求宏名与字符序列之间用空格符分隔。这种宏定义要求编译预处理程序将源程序中随后所有的定名的出现(注释与字符串常量中的除外)均用字符序列替换之。前面经常使用的定义符号常量是宏定义的最简单应用。如有:

# define TRUE 1

# define FALSE 0

则在定义它们的源程序文件中,凡定义之后出现的单词TRUE将用1替代之;出现单词FALSE将用0替代之。

在宏定义的#之前可以有若干个空格、制表符,但不允许有其它字符。宏定义在源程序中单独另起一行,换行符是宏定义的结束标志。如果一个宏定义太长,一行不够时,可采用续行的方法。续行是在键人回车符之前先键入符号""。注意回车要紧接在符号""之后,中间不能插入其它符号。

宏定义的有效范围称为宏定义名的辖域,辖域从宏定义的定义结束处开始到其所在的源程序文件末尾。宏定义名的辖域不受分程序结构的影响。可以用预处理命令#undef终止宏定义名的辖域。

在新的宏定义中,可以使用前面已定义的宏名。例如,

# define R 2.5

# define PI 3.1415926

# define Circle 2*PI*R

# define Area PI* R * R

程序中的Circle被展开为2*3.1415926* 2.5, Area被展开为3.1415926*2.5*2.5。

如有必要,宏名可被重复定义。被重复定义后,宏名原先的意义被新意义所代替。

通常,无参数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值