工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
楼主: jinry

关于C语言

[复制链接]
 楼主| 发表于 2008-3-20 22:33 | 显示全部楼层

宏定义时的括号的完备性

在定义一些常量值的时候这些不是太明显,可是在定义一些的计算值的时候,比如:
#define Y(a, b)  a*b
这样的宏就很成问题,当a或者b本来就是一个表达式的时候就可以出现意想不到的错误,如下
Y ( 1, 2+3 )
这样代入计算是1 * 2 + 3,肯定是错误的...

同样定义如#define Y(a, b) (a) + (b)也括号也是不完备的,如果出现
(3 * Y(1, 2))这样的计算的话也是不对的,所以括号完备的应该是
#define Y ( a, b )  ((a) + (b)),不仅要把每个元素都括住,同样,整个表达式也要括住

另外在定义宏的时候,应该注意的是如上面的,a, b的值在宏的执行过程中应该尽量不变的,如果真要求要在计算后改变变量的值,那么可以在后面明确地加上该语句,

[ 本帖最后由 jinry 于 2008-3-20 22:40 编辑 ]
回复

使用道具 举报

发表于 2008-3-20 22:51 | 显示全部楼层
C语言考试TM的简单,,,
回复

使用道具 举报

发表于 2008-3-21 00:31 | 显示全部楼层
C语言考试连语法都没能考完。。。拿满分都不能说明什么...
回复

使用道具 举报

 楼主| 发表于 2008-3-21 01:13 | 显示全部楼层
LS的是在说我吗?
今天考试,让自己考了个满分,才刚刚及格...

不过如果你们大家能将上面的讲到的这么多的方面的,再加上指针的一些的东西的,那么你们就算是对C比较掌握了,其他的什么库之类的只是应用的问题...
回复

使用道具 举报

发表于 2008-3-21 01:22 | 显示全部楼层
LS在这帖上说的内容,估计是学校里能考的最“高级”的话题了。。。
回复

使用道具 举报

 楼主| 发表于 2008-3-21 02:02 | 显示全部楼层
关于指针,是C的超高级技巧.....
不知道怎么样有条理地描述,只是能知道怎么用,尽量避免出现错误.....
回复

使用道具 举报

发表于 2008-3-21 02:05 | 显示全部楼层
23L说的是学校的考试...对22L的话有感而发...
回复

使用道具 举报

发表于 2010-6-21 01:33 | 显示全部楼层
继续更新。
回复

使用道具 举报

发表于 2010-7-9 00:12 | 显示全部楼层
还不错哦。。
回复

使用道具 举报

 楼主| 发表于 2010-11-10 00:48 | 显示全部楼层
挖坟。。。。
回复

使用道具 举报

发表于 2010-11-15 22:10 | 显示全部楼层
加把土
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-4-27 14:22

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表