打印

这两句是什么作用?

[复制链接]
1952|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
21ID|  楼主 | 2009-9-12 15:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define bitset(var,bitno)((var)|=1<<(bitno))
#define bitclr(var,bitno)((var)&=~(1<<(bitno)))
沙发
yewuyi| | 2009-9-12 15:05 | 只看该作者
这两行写错了,中间有空格要分开的,应该是:
#define bitset(var,bitno)     ((var)|=1<<(bitno))
#define bitclr(var,bitno)       ((var)&=~(1<<(bitno)))

作用就是宏定义进行位操作。

使用特权

评论回复
板凳
21ID|  楼主 | 2009-9-12 16:15 | 只看该作者
哦,是有个空格的。那一般在程序里这两条都要加上的吧?

使用特权

评论回复
地板
yewuyi| | 2009-9-13 18:22 | 只看该作者
基本的问题需要自己看书,问问题一般来说是个好习惯,但不看书不思考 ,什么都问,那一定不是好习惯

使用特权

评论回复
5
21ID|  楼主 | 2009-9-13 20:37 | 只看该作者
就买了张明峰的书,介绍C语言的太少,从网上下资料也很难找,下了几个都是张工书里的内容

使用特权

评论回复
6
yewuyi| | 2009-9-14 08:33 | 只看该作者
基本的C语言知识需要去看C语言相关的专业教材。

张工的书只是把关键点以及和常规不一样的地方讲解了一下,它不是万宝书,不可能什么都写进去。

使用特权

评论回复
7
21ID|  楼主 | 2009-9-14 08:43 | 只看该作者
知道了,谢谢业务员

使用特权

评论回复
8
yewuyi| | 2009-9-15 09:45 | 只看该作者
哦,我啥时候又成‘业务员’了?!

使用特权

评论回复
9
ZRL700424| | 2009-9-15 10:01 | 只看该作者
业务1,业务2,……
虽然你是头号业务,但也还算是业务员吧?

使用特权

评论回复
10
hsw_21| | 2009-9-16 15:14 | 只看该作者
#define SET_FLAG(f)                        f##_byte |=  f##_bit   // flag set
#define CLR_FLAG(f)     f##_byte &= ~f##_bit   // flag clear
#define TOG_FLAG(f)     f##_byte ^=  f##_bit   // flag toggle
#define VAL_FLAG(f)     (f##_byte &  f##_bit)  // flag value for test

#define SET_BIT(f)                        f##_byte |=  f##_bit   // bit set
#define CLR_BIT(f)             f##_byte &= ~f##_bit   // bit clear
#define TOG_BIT(f)             f##_byte ^=  f##_bit   // bit toggle
#define VAL_BIT(f)             (f##_byte &  f##_bit)  // bit value for test

使用特权

评论回复
11
ahappycow| | 2009-9-18 12:39 | 只看该作者
#define bitset(var,bitno)     ((var)|=1<<(bitno))
#define bitclr(var,bitno)       ((var)&=~(1<<(bitno)))

是宏定义
第一句定义的 bitset(var,bitno)实现对var第bitno 位的 置位
第二句定义的 bitclr(var,bitno)实现对var第bitno 位的 清零

使用特权

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

本版积分规则

157

主题

912

帖子

5

粉丝