所以展开应该是
int _a = (2)
int _b = (3)
_a>_b?_a:_b
如果在使用宏的时候, a和b的类型是自己定义的类型 例如:
salary a
salary b
现在要调用宏来比较他俩的大小
salary n
n = max(a,b)<==>(salary _a = (a) salary _b = (b) _a>_b?_a:_b)
这样的求最大数的宏是目前最安全的写法
这里用宏的好处太多了。1、增强代码的可读性。
拿这个例子来说,其他程序员一看这个宏就知道,0x01表示大写字母类型,0x02表示小写字母类型,0x03表示数字类型。然后isalnum是字符c类型判断结果,为零表示c不是字母或数字,不为零则表示c是字母或数字。
2、减少代码运行消耗。
if(isalnum)和if(__ctype[c] &(UPPER|_LOWER|DIGIT))相比,不止是写起来简单、看起来清晰,它的运行效率也更高了吧。
3、增强代码的可移植性。
还是这个例子,如果要求在程序中只需要判断一个字符是否为大写字母,那么只需要把宏改为#define isUpper (__ctype[c] &_UPPER)就可以实现,而不用去代码中找到并修改每一个相关的判断语句。
在linux c编程中学会使用宏,会给你带来很多好处和。。乐趣,呵呵。希望我的回答能对你有些帮助。
在 Linux 系统下面,可以使用 gcc 编译器对自己编写的 C 语言源程序进行编译。当然了,要想使用 c 编译器对 C 语言源程序进行编译,前提是在安装 Linux *** 作系统时,必须把 Linux 系统自带的 gcc 编译器安装上。常用的选项有(其中:$ 表示普通用户装下面的提示符,# 表示超级用户下面的提示符):
$gcc my_program.c <cr>
如果 C 源程序没有任何错误的话,编译器就会自动生成一个缺省的可执行程序,该文件名为 a.out
$gcc -o my_program my_program.c <cr>(-o 选项用于指定输出的可执行程序名)
如果 C 源程序没有任何错误的话,编译器就会自动生成一个 my_program 的可执行程序
其他还有很多选项,可以参考 gcc 的详细使用文档。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)