亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 2757 | 回復: 10
打印 上一主題 下一主題

關于宏的問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-01-19 15:34 |只看該作者 |倒序瀏覽
今天看到一些代碼,定義的宏如下所示:

#define XXXX     (2<<3)
#define YYYY      (3<<3)
#define ZZZZ        (0<<1)
#define MMM        (1<<1)
#define NNNN       (2<<1)

感覺很奇怪,為什么不直接寫成#define XXXX     16 呢 , 這其中有什么原因嗎 .而其他地方的宏都是直接定義的 .

本文很菜 , 希望大家能夠幫忙以解疑惑.

論壇徽章:
0
2 [報告]
發(fā)表于 2009-01-19 15:39 |只看該作者

回復 #1 billzhou 的帖子

XXXX定義了以后是怎么使用的呢?

論壇徽章:
0
3 [報告]
發(fā)表于 2009-01-19 16:12 |只看該作者
#define MMM        (1<<1)
這種情況我碰到過

比如一個8byte字節(jié)的數據
我們用它的8位中的低6位分別表示不同含義
第0,1位分別表示文件文件所有者是否可以寫,讀
第2,3位..................組用戶..........................
第4,5位..................其它用戶.......................
如果允許,相應位為1,不允許為0

現在我做如下宏定義
#define USR_R (1<<0)
#define USR_W (1<<1)
#define GRP_R (1<<2)
#define GRP_W (1<<3)
#define OTH_R (1<<4)
#define OTH_W (1<<5)

如果我需要判斷其他用戶是否有寫權限
可以做如下判斷:
flag & OTH_W

你沒有必要去把1<<5的值算出來
從宏定義里我們就可以了解到第5位表示other用戶是否可以進行寫
你把這個值算出來,你就很難直觀的了解這個信息,這樣反而不利于你的程序檢查

[ 本帖最后由 zhuhefang2006 于 2009-1-19 16:15 編輯 ]

評分

參與人數 1可用積分 +2 收起 理由
samon_fu + 2 我很贊同。

查看全部評分

論壇徽章:
0
4 [報告]
發(fā)表于 2009-01-19 16:17 |只看該作者
對,就是直觀。  為了一看就懂

論壇徽章:
0
5 [報告]
發(fā)表于 2009-01-19 16:21 |只看該作者
原來如此 , 非常感謝 .

論壇徽章:
0
6 [報告]
發(fā)表于 2009-01-19 21:36 |只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽

論壇徽章:
0
7 [報告]
發(fā)表于 2009-01-20 10:10 |只看該作者
原帖由 billzhou 于 2009-1-19 15:34 發(fā)表
今天看到一些代碼,定義的宏如下所示:

感覺很奇怪,為什么不直接寫成#define XXXX     16 呢  


如果這樣定義,很容易出錯,比如:

#define XXXX1     0x01
#define XXXX2     0x02
#define XXXX3     0x04
#define XXXX4     0x08
#define XXXX5     0x16  //---> 錯了。。

論壇徽章:
0
8 [報告]
發(fā)表于 2009-01-20 11:43 |只看該作者
直觀,否則就和魔數似的

論壇徽章:
0
9 [報告]
發(fā)表于 2009-01-20 16:56 |只看該作者
謝謝各位,非常明了

論壇徽章:
0
10 [報告]
發(fā)表于 2009-01-20 21:03 |只看該作者
唯一的用處就是讓看代碼的人一看就明白定義的這個宏代表的意義,實際編譯器編譯的時候,再預編譯階段已經把宏定義替換成具體的數據了,不是帶<<或者>>的表達式了。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP