shell.如何定义宏路径

shell.如何定义宏路径,第1张

定义岁租说明

宏定义是比较常用的预处理指令,即使用“标识符”来表示“替换列表”中的内容。标识符称为宏名,在预处理过程中,预处理器会把源程序中所有宏名,替换成宏定义中替换列表中的内容。

常见的宏定义有两种,不带参数的宏定义和带参数的宏定义。

2、无参宏定义

无参数宏定义的格式为:燃盯

#define 标识符 替换列表

替换列表皮雀和可以是数值常量、字符常量、字符串常量等,故可以把宏定义理解为使用标识符表示一常量,或称符号常量。

所谓的宏就是给某个值的一个固定的名称,便于后面程序的修改和维护。尺袜具体的定义格式是:

#define 宏名 值

也就是把右边的那个值取个 名字。

比如你写的

#define GCN_ICON PACKAGE_DATA_DIR "/"

宏的名字叫GCN_ICON PACKAGE_DATA_DIR ,他的具虚竖体值是"/"。在程序编译时,凡是程序中出现GCN_ICON PACKAGE_DATA_DIR 的地方,都会替换成"/"。这样做的目的主要是为了维护程序的方便。比如,你想把"/"改成另一个值,那么在这里你只要把定义部分改过来就可以了,程序中是不陵誉激需要修改的。如果不这样做,那么程序中的每个使用他的地方都需要修改,不止量很大,还容易出错。

C语言中的宏定义用法分为两种。

1、不带参数的宏定义指绝比较简单,就是用一个指定的标识符来代表一个字符串。它的一般形式为“#define 标识符 字符串”,例如#define E 2.718281828459。这种方法使用户能以一个简单的名字代替一个长的字符串。

2、带参数的宏定义不是仅仅进行简单的字符串替换,还要进行参数替换。其定义渣散的一般形式为;“#define 标识符(宏名)(参数表) 字符串”,字符串中包含在括号中所指定的参数。例如#define S(a,b) a*b area=S(3. 2)。

扩展资料:

宏定义只占编译时间,函数调用则占用运行时间(分配单元,保存现场,值传递,返回),每次执行都要载入,所以执行相对宏定义会较慢。

使用宏定义次数多时,宏定义展开后源程序很长,因为每展开一次都使程序增长,但是执行起来比较快一点(这也不是绝对的,当有唯梁姿很多宏定义展开,目标文件很大,执行的时候运行时系统换页频繁,效率就会低下)。而函数调用不使源程序变长。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12445494.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存