打印

开发中宏定义及应用讨论

[复制链接]
631|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);
}

使用特权

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

使用特权

评论回复
6
zhangbo1985| | 2016-9-18 22:12 | 只看该作者
这个宏定义的应用得当,能减轻很多的程序设计工作的

使用特权

评论回复
7
zhangbo1985| | 2016-9-18 22:13 | 只看该作者
特别是在程序开发初期过程中所涉及到的程序调试的

使用特权

评论回复
8
zhangbo1985| | 2016-9-18 22:14 | 只看该作者
程序开发完善后,直接通过所定义的宏讲所设置的调试代码的屏蔽掉的就OK了

使用特权

评论回复
9
niemi| | 2016-9-24 21:30 | 只看该作者

使用特权

评论回复
10
vivilzb1985| | 2016-9-25 12:25 | 只看该作者
baimiaocun2015 发表于 2016-9-18 19:56
这个是重点的

#define命令剖析

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

使用特权

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

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

使用特权

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

本版积分规则

27

主题

1870

帖子

2

粉丝