企業錄,供求信息免費發布平臺
 
  首 頁 企業名錄 產品大全 商業機會 企業建站 我的辦公室
手機站
易網站
企業名錄
您當前位置是:商業機會 >> 商務服務 >> 軟件開發 >> C++語言中宏列表介紹
C++語言中宏列表介紹 C++語言中宏列表介紹_西安達內科技_C++語言中宏列表介紹

點此瀏覽大圖
公 司: 西安達內科技
發布時間:2014年07月03日
有 效 期:2014年12月30日
留言詢價 加為商友
  聯系信息 企業信息
西安達內 先生 (seo)
聯系時,請說是在企業錄看到的,謝謝!
電  話: 029-82222601
傳  真:
手  機:
地  址: 中國陜西西安市陜西省西安市興慶南路10號交大出版大廈6層
郵  編:
公司主頁: http://xadnitpx2.qy6.com.cn(加入收藏)
公 司:西安達內科技

查看該公司詳細資料

詳細說明

    西安達內培訓(http://www.xatarena.net)講師表示,C中的一個慣用方法,是說有一個已命名的實體列表,需要為它們中的每一個建立函數,將它們中的每一個初始化,并在不同的代碼模塊中擴展它們的名字。這在Mozilla的源碼中經常用到,我就是在那時學到這個技巧的。例如,在我去年夏天工作的那個項目中,我們有一個針對每個命令進行標記的宏列表。其工作方式如下:

#define FLAG_LIST(_)
_(InWorklist)
_(EmittedAtUses)
_(LoopInvariant)
_(Commutative)
_(Movable)
_(Lowered)
_(Guard)

它定義了一個FLAG_LIST宏,這個宏有一個參數稱之為 _ ,這個參數本身是一個宏,它能夠調用列表中的每個參數。舉一個實際使用的例子可能更能直觀地說明問題。假設我們定義了一個宏DEFINE_FLAG,如:

#define DEFINE_FLAG(flag) flag,
enum Flag {
None = 0,
FLAG_LIST(DEFINE_FLAG)
Total
};
#undef DEFINE_FLAG
對FLAG_LIST(DEFINE_FLAG)做擴展能夠得到如下代碼:

enum Flag {
None = 0,
DEFINE_FLAG(InWorklist)
DEFINE_FLAG(EmittedAtUses)
DEFINE_FLAG(LoopInvariant)
DEFINE_FLAG(Commutative)
DEFINE_FLAG(Movable)
DEFINE_FLAG(Lowered)
DEFINE_FLAG(Guard)
Total
};
接著,對每個參數都擴展DEFINE_FLAG宏,這樣我們就得到了enum如下:

enum Flag {
None = 0,
InWorklist,
EmittedAtUses,
LoopInvariant,
Commutative,
Movable,
Lowered,
Guard,
Total
};
接著,我們可能要定義一些訪問函數,這樣才能更好的使用flag列表:

#define FLAG_ACCESSOR(flag)
bool is##flag() const {
return hasFlags(1 << flag);
}
void set##flag() {
JS_ASSERT(!hasFlags(1 << flag));
setFlags(1 << flag);
}
void setNot##flag() {
JS_ASSERT(hasFlags(1 << flag));
removeFlags(1 << flag);
}

FLAG_LIST(FLAG_ACCESSOR)
#undef FLAG_ACCESSOR

一步步的展示其過程是非常有啟發性的,如果對它的使用還有不解,可以花一些時間在gcc –E上。


免責聲明:以上所展示的信息由會員自行提供,內容的真實性、準確性和合法性由發布會員負責,m.lyxsdst.com對此不承擔任何責任。如有侵犯您的權益,請來信通知刪除。
該公司其他商業信息
 1 直接到第
5 條信息,當前顯示第 1 - 5 條,共 1

機械 儀器 五金 電子 電工 照明 汽摩 物流 包裝 印刷 安防 環保 化工 精細化工 橡膠塑料 紡織 冶金 農業 健康保養 建材 能源 服裝 工藝品 家居用品 數碼 家用電器 通訊產品 辦公 運動、休閑 食品 玩具 商務 廣告 展會
1 2 3 4 5 6 7 8 9 10 .. 聯系人:西安達內 電話:029-82222601

關于我們 | 網站指南 | 廣告服務 | 誠招代理 | 誠聘英才 | 付款方式 | (企業錄)聯系方式 | 友情鏈接 | 網站地圖
主站蜘蛛池模板: 色综合天天综合网国产成人| 99国产精品久久久久久久成人热| 亚洲国产精品成人久久| 成人午夜免费福利| 成人18xxxx网站| 伊人色院成人蜜桃视频| 色偷偷成人网免费视频男人的天堂| 精品无码成人久久久久久| 国产成人亚洲精品无码AV大片| 国产精品成人免费视频网站 | 亚洲欧洲精品成人久久曰影片| 成人性生交大片免费看| 欧美a级成人淫片免费看| 成人免费激情视频| 国产婷婷成人久久av免费高清| 国产成人久久精品麻豆二区| 久久亚洲国产成人亚| 成人嘿嘿视频网站在线| 国产成人久久777777| 成人狠狠色综合| 亚洲国产成人精品久久| 国产成人精品三级在线| 欧美成人一区二区三区在线观看 | 成人午夜精品无码区久久| 四虎国产欧美成人影院| 成人国产激情福利久久精品| 1314成人网| 亚洲人成人77777网站| 国产成人精品午夜二三区| 成人国产精品一区二区视频| 老司机成人精品视频lsj| 成人免费小视频| 无码国产成人午夜电影在线观看| 久久成人无码国产免费播放| 国产成人午夜福利在线播放| 国产成人精品福利网站在线观看| 成人免费网站视频www| 日本成人在线视频网站| 成人精品一区二区户外勾搭野战 | 成人综合激情另类小说| 成人性生活免费看|