开发中宏定义及应用讨论

[复制链接]
592|10
手机看帖
扫描二维码
随时随地手机跟帖
baimiaocun2015|  楼主 | 2016-9-18 19:55 | 显示全部楼层 |阅读模式
如题,在进行程序开发过程中,总是会用到宏的,其便利性很好的可操作性为我们的开发带来便利的,下边就宏相关的问题跟大家一块讨论下的。。
baimiaocun2015|  楼主 | 2016-9-18 19:55 | 显示全部楼层
#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。

使用特权

评论回复
baimiaocun2015|  楼主 | 2016-9-18 19:56 | 显示全部楼层
这个是重点的

#define命令剖析
1.1 #define的概念
#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。
该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。
(1) 简单的宏定义:
#define <宏名>   <字符串>
例: #define PI 3.1415926
(2) 带参数的宏定义
#define <宏名> ( <参数表>) <宏体>
例: #define A(x) x

使用特权

评论回复
baimiaocun2015|  楼主 | 2016-9-18 19:56 | 显示全部楼层
#define使用中的常见问题解析
2.1 简单宏定义使用中出现的问题
在简单宏定义的使用中,当替换文本所表示的字符串为一个表达式时,容易引起误解和误用。如下例:
例1 #define N 2+2
void main()
{
int a=N*N;
printf(“%d”,a);
}

使用特权

评论回复
baimiaocun2015|  楼主 | 2016-9-18 19:57 | 显示全部楼层
注意上边的不同定义会有不同的结果的,,不管怎样,记住一点,那就是,这里宏仅仅是简单的一个替换的

使用特权

评论回复
zhangbo1985| | 2016-9-18 22:12 | 显示全部楼层
这个宏定义的应用得当,能减轻很多的程序设计工作的

使用特权

评论回复
zhangbo1985| | 2016-9-18 22:13 | 显示全部楼层
特别是在程序开发初期过程中所涉及到的程序调试的

使用特权

评论回复
zhangbo1985| | 2016-9-18 22:14 | 显示全部楼层
程序开发完善后,直接通过所定义的宏讲所设置的调试代码的屏蔽掉的就OK了

使用特权

评论回复
niemi| | 2016-9-24 21:30 | 显示全部楼层

使用特权

评论回复
vivilzb1985| | 2016-9-25 12:25 | 显示全部楼层
baimiaocun2015 发表于 2016-9-18 19:56
这个是重点的

#define命令剖析

这种宏定义的可以多试用下括号的。

使用特权

评论回复
firstblood| | 2016-9-25 17:56 | 显示全部楼层
baimiaocun2015 发表于 2016-9-18 19:56
#define使用中的常见问题解析
2.1 简单宏定义使用中出现的问题
在简单宏定义的使用中,当替换文本所表示 ...

定义的宏的引用需要注意的。。宏只是整体替换的,并不发生运算过程的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

1870

帖子

2

粉丝