菜鸟进,猜猜运行结果

linlan999 2009-07-10 04:44:09
#include <stdio.h>
#include <string.h>
#define FLAG_IN_USE 1
#define FLAG_DOWNLOAD_OVER 1<<1
#define FLAG_HAS_DESC_FILE 1<<2

#define SET_SVR_IN_USE(svr)\
(svr)->flag|=FLAG_IN_USE
#define SET_SVR_USELESS(svr)\
(svr)->flag&=(~FLAG_IN_USE)
#define IS_SVR_IN_USE(svr)\
(((svr)->flag)&(FLAG_IN_USE))

#define SET_SVR_DOWNLOADED(svr)\
(svr)->flag|=FLAG_DOWNLOAD_OVER
#define SET_SVR_UNDOWNLOADED(svr)\
(svr)->flag&=(~FLAG_DOWNLOAD_OVER)
#define IS_SVR_DOWNLOADED(svr)\
((svr->flag)&(FLAG_DOWNLOAD_OVER))

#define SET_SVR_HAS_DES(svr)\
(svr)->flag|=(FLAG_HAS_DESC_FILE)
#define SET_SVR_NO_DES(svr)\
(svr)->flag&=(~FLAG_HAS_DESC_FILE)
#define IS_SVR_HAS_DES(svr)\
((svr->flag)&(FLAG_HAS_DESC_FILE))

typedef struct {char flag;} TEST_T;

int main(int argc,char**argv)
{
TEST_T test;
TEST_T *p=NULL;
p=&test;
memset(p,0,sizeof(TEST_T));
/****************USE********************/
SET_SVR_IN_USE(p);
printf("%d\n",*p);

printf("%d\n",IS_SVR_IN_USE(p));
#if 0
SET_SVR_USELESS(p);
printf("%d\n",*p);

printf("%d\n",IS_SVR_IN_USE(p));

/******************DOWNLOAD*******************/
SET_SVR_DOWNLOADED(p);
printf("%d\n",*p);

printf("%d\n",IS_SVR_DOWNLOADED(p));
#endif
SET_SVR_UNDOWNLOADED(p);
printf("%d\n",*p);

printf("%d\n",IS_SVR_DOWNLOADED(p));

/******************DES**************************/
SET_SVR_HAS_DES(p);
printf("%d\n",*p);

printf("%d\n",IS_SVR_HAS_DES(p));

SET_SVR_NO_DES(p);
printf("%d\n",*p);
printf("%d\n",IS_SVR_HAS_DES(p));
}
...全文
47 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
Walf_ghoul 2009-07-10
  • 打赏
  • 举报
回复
机智的呆呆 2009-07-10
  • 打赏
  • 举报
回复
企-鹅 2009-07-10
  • 打赏
  • 举报
回复
标记下……

关注……
企-鹅 2009-07-10
  • 打赏
  • 举报
回复
Code::blocks运行下
1
1
0
0
4
4
0
0

企-鹅 2009-07-10
  • 打赏
  • 举报
回复
C-free运行下……

65281
1
65280
0
65284
4
65280
0
请按任意键继续…


bxl1989 2009-07-10
  • 打赏
  • 举报
回复
能说说这段代码的意义吗?
lijiawlm 2009-07-10
  • 打赏
  • 举报
回复
猜这种东西有什么意义?
你是老师?
Fleeboy 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 linlan999 的回复:]
既然大家都感觉比较乱,还是说说吧


C/C++ code#define FLAG_HAS_DESC_FILE 1 < <2

#define SET_SVR_NO_DES(svr)\
(svr)->flag&=(~FLAG_HAS_DESC_FILE)


这个是有问题的,宏展开后是

C/C++ code~1<<2


并不是预期的
[/Quote]
原来是这样,谢了。:)
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 linlan999 的回复:]
引用 6 楼 luwenzuo 的回复:
我猜!猜!猜!
1244929
1
4344320
0
4344324
4
0
0
Press any key to continue



会出现这个结果,??
[/Quote]
我也得到了相同的结果!
编译环境:VC6.0 楼主的呢?
linlan999 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luwenzuo 的回复:]
我猜!猜!猜!
1244929
1
4344320
0
4344324
4
0
0
Press any key to continue
[/Quote]

会出现这个结果,??
linlan999 2009-07-10
  • 打赏
  • 举报
回复
既然大家都感觉比较乱,还是说说吧

#define  FLAG_HAS_DESC_FILE  1 < <2 

#define SET_SVR_NO_DES(svr)\
(svr)->flag&=(~FLAG_HAS_DESC_FILE)

这个是有问题的,宏展开后是
~1<<2

并不是预期的
  • 打赏
  • 举报
回复
用猜。
楼上是想为了说明什么问题吗?
  • 打赏
  • 举报
回复
1244929
1
4344320
0
4344324
4
0
0

呵呵
ddyouyue 2009-07-10
  • 打赏
  • 举报
回复
眼花缭乱....
liao05050075 2009-07-10
  • 打赏
  • 举报
回复
看到眼都花了。。还猜个什么劲?!
Nio96 2009-07-10
  • 打赏
  • 举报
回复
晕。这能猜出来么。。。
大前置 2009-07-10
  • 打赏
  • 举报
回复
我猜!猜!猜!
1244929
1
4344320
0
4344324
4
0
0
Press any key to continue
linlan999 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Fleeboy 的回复:]
小弟都给看晕了:(

lz头像是不是周正龙拍的那只华南虎?
[/Quote]

呵呵,不知道是不是。
linlan999 2009-07-10
  • 打赏
  • 举报
回复
大家,先猜猜
Fleeboy 2009-07-10
  • 打赏
  • 举报
回复
直接运行了一下:
1
1
0
0
4
4
0
0
加载更多回复(2)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧