青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

無我

讓內心永遠燃燒著偉大的光明的精神之火!
靈活的思考,嚴謹的實現
豪邁的氣魄、頑強的意志和周全的思考

C語言嵌套注釋

          《C陷阱與缺陷》中有一個有意思的問題:“某些C編譯器允許嵌套注釋。請寫一個測試程序,要求:無論是對允許嵌套注釋的編譯器,還是對不允許嵌套注釋的編譯器,該程序都能正常通過編譯(無錯誤消息出現),但是這兩種情況下程序執行的結果卻不相同。
 (提示:在用引號括起來的字符串中,注釋符I*屬于字符串的一部分,而在注釋中出現的雙引號””又屬于注釋的一部分。)”

         我覺得這對C的詞法分析挺有意思的。要是聰明的您,有什么辦法呢?

         以下是作者給出的答案,確實很精妙,尤其第二個。

         ——為了判斷編譯器是否允許嵌套注釋,必須找到這樣一組符號序列,無論是對于允許嵌套注釋的編譯器,還是不允許嵌套注釋的編譯器,它都是合法的;但是,對于兩類不同的編譯器,它卻意味著不同的事物。這樣一組符號序列不可避免地要涉及嵌套注釋,讓我們從這里開始討論:
       /*/**/
       對于一個允許嵌套注釋的C編譯器,無論上面的符號序列后面跟什么,都屬于注釋的一部分;而對于不允許嵌套注釋的C編譯器,后面跟的就是實實在在的代碼內容。也許有人因此想到可以在后面再跟一個用一對引號引起的注釋結束符:
      /*/**/ "*/"

       如果允許嵌套注釋,上面的符號序列就等效于一個引號;如果不允許,那么就等效于一個字符串"*I"。因此,我們可以接著在后面跟一個注釋開始符以及一個引號:

      /*/**/ "*/"/*"
       如果允許嵌套注釋,上面就等效于用一對引號引起的注釋開始符"/*";如果不允許,那么就等效于一個用引號括起的注釋結束符,后跟一段未結束的注釋。我們可以簡單地讓最后的注釋結束:
      /*/**/ "*/"/*" /**/
    這樣,如果允許嵌套注釋,上面的表達式就等效于"/*",:如果不允許,那么就等效于,"*/"。

    在我用基本上類似于上面的形式解決這個問題之后,Doug McIlroy發現了下面這個讓人拍案叫絕的解法:
    /*/*/0*/**/1
    這個解法主要利用了編譯器作詞法分析時的“大嘴法”規則。如果編譯器允許嵌套注釋,則上式將被解釋為:
     /*/*/0*/**/1
    兩個/*符號與兩個*/符號正好匹配,所以上式的值就是1。如果不允許嵌套注釋,注釋中的/*將被忽略。因此,即使卿出現在注釋中也沒有特殊的含義:上面的表達式因此將被這樣解釋:
     /*/*/0*/**/1
   它的值就是0*1,也就是0o

 

   上面利用一個特殊構造的字符串就完成了這個任務,果然精妙!

   而當時我對這個特殊字符串推導時沒有看到希望,用了宏來幫忙,設計了下面的程序:

#define A /* aaa /* a*/ a
#define B */

bool CanNesting()
{
#ifdef B
    
return false;
#else
    
return true;
#endif
}


   上面程序中,如果支持嵌套,B的宏定義屬于注釋的一部分,所以B應該沒有被定義,函數返回true。否則,就不支持嵌套,函數返回false。

posted on 2011-03-25 17:18 Tim 閱讀(5998) 評論(0)  編輯 收藏 引用 所屬分類: C/C++語言

<2012年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

導航

統計

公告

本博客原創文章,歡迎轉載和交流。不過請注明以下信息:
作者:TimWu
郵箱:timfly@yeah.net
來源:m.shnenglu.com/Tim
感謝您對我的支持!

留言簿(9)

隨筆分類(173)

IT

Life

搜索

積分與排名

最新隨筆

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本色道**综合亚洲精品蜜桃冫 | 欧美尤物巨大精品爽| 亚洲欧洲精品天堂一级| 美女主播一区| 欧美国产日本高清在线| 最新亚洲激情| 亚洲精品资源美女情侣酒店| 在线亚洲一区观看| 亚洲专区国产精品| 久久久久久电影| 米奇777在线欧美播放| 久久性天堂网| 欧美视频二区| 韩国av一区二区三区在线观看| 亚洲国产91色在线| 亚洲小视频在线观看| 久久久91精品国产| 亚洲日韩欧美视频| 午夜影视日本亚洲欧洲精品| 老色批av在线精品| 欧美视频在线观看一区二区| 一区二区视频免费在线观看| 夜久久久久久| 久久尤物电影视频在线观看| 日韩亚洲不卡在线| 久久亚洲综合色| 国产精品毛片在线看| 亚洲激情啪啪| 久久精品成人一区二区三区蜜臀| 欧美大学生性色视频| 亚洲综合精品自拍| 欧美激情视频网站| 国语精品中文字幕| 亚洲欧美一区二区精品久久久| 欧美成人性生活| 亚洲欧美日韩国产综合在线 | 国产欧美一二三区| 在线午夜精品自拍| 欧美福利一区| 久久久久久亚洲综合影院红桃| 国产精品chinese| 亚洲人体一区| 欧美成人免费全部| 欧美在线一二三四区| 国产精品美女一区二区| 日韩亚洲国产精品| 欧美高清视频一区二区| 久久久在线视频| 国产日韩欧美综合精品| 亚洲午夜电影| 日韩一级在线观看| 欧美韩国一区| 日韩午夜高潮| 亚洲日本成人| 欧美日韩三级| 亚洲欧美国产精品专区久久| 亚洲精品女人| 毛片一区二区| 亚洲人精品午夜| 91久久精品国产91久久性色| 欧美1区2区| 久久综合九色综合欧美狠狠| 欧美中文字幕不卡| 国产精自产拍久久久久久| 亚洲图片欧美午夜| 中日韩高清电影网| 国产精自产拍久久久久久| 欧美一区二区三区四区在线| 亚洲伊人网站| 国产一区二区三区丝袜| 久久在线91| 欧美成人伊人久久综合网| 日韩一区二区精品视频| 夜夜精品视频| 国产视频观看一区| 久久综合狠狠| 欧美承认网站| 亚洲一区二区免费视频| 午夜精品久久久久久99热软件| 午夜精品免费视频| 欧美在线不卡| 亚洲大片免费看| 亚洲精品视频二区| 国产精品久久久久9999| 久久人人爽人人| 欧美国产视频日韩| 午夜精品在线看| 久久只有精品| 亚洲综合精品一区二区| 欧美一区亚洲| 一区二区高清在线| 欧美亚洲一区二区在线观看| 在线欧美不卡| 亚洲永久精品大片| 亚洲日本va午夜在线电影| 一区二区三区欧美成人| 国产一区欧美| 亚洲毛片播放| 在线不卡亚洲| 一本色道综合亚洲| 亚洲国产成人av| 亚洲主播在线播放| 日韩一级大片| 久久精品视频在线| 亚洲一区二区三| 久久资源av| 欧美中文在线观看国产| 模特精品在线| 久久精品毛片| 欧美日韩一区二区免费视频| 久久久在线视频| 欧美日韩免费观看一区=区三区| 久久精品国产清高在天天线| 免费观看国产成人| 欧美一区二视频在线免费观看| 欧美精品91| 免费欧美在线| 国产亚洲精品bt天堂精选| 一本色道久久综合亚洲91| 亚洲人成在线观看网站高清| 久久精品一区二区三区中文字幕| 亚洲欧美自拍偷拍| 国产精品高潮在线| 亚洲精品一区二区三区在线观看| 亚洲第一成人在线| 亚洲激情成人在线| 亚洲综合色网站| 欧美福利网址| 久久中文欧美| 国产色爱av资源综合区| 亚洲婷婷国产精品电影人久久| 99视频热这里只有精品免费| 久久婷婷麻豆| 免费观看日韩av| 在线观看日韩www视频免费| 欧美一区日韩一区| 久久久99精品免费观看不卡| 国产嫩草一区二区三区在线观看| 中国成人在线视频| 午夜精品短视频| 国产欧美日韩亚洲| 欧美一区二区三区另类| 久久精品国产久精国产一老狼| 国产日韩欧美一区| 欧美在线综合| 欧美国产精品va在线观看| 亚洲国产高清一区二区三区| 蜜臀av在线播放一区二区三区| 亚洲丰满在线| 99精品99久久久久久宅男| 欧美视频一区| 亚洲欧美变态国产另类| 久久精品人人| 在线电影国产精品| 欧美极品一区二区三区| 一区二区久久久久| 久久久国际精品| 91久久精品视频| 欧美午夜免费| 久久精品一区二区三区不卡| 亚洲电影免费观看高清完整版在线观看 | 欧美精品入口| 亚洲午夜久久久久久尤物 | 亚洲精品视频在线| 欧美日韩免费观看一区| 亚洲一区二区三区欧美| 久久精品国产免费观看| 亚洲国产精品va在线看黑人| 欧美激情1区2区3区| 在线视频免费在线观看一区二区| 久久av在线| 99热在线精品观看| 国产精品亚洲人在线观看| 久久综合久久综合这里只有精品 | 欧美精品三级日韩久久| 亚洲综合成人在线| 欧美成人综合在线| 午夜精品久久久久| 亚洲人成欧美中文字幕| 国产精品一区二区女厕厕| 久久久一本精品99久久精品66| 日韩亚洲欧美高清| 久久夜色精品国产亚洲aⅴ| 日韩视频永久免费观看| 国产日韩精品入口| 欧美精品日日鲁夜夜添| 欧美一区网站| 亚洲一区免费| 亚洲高清精品中出| 国产欧美日韩精品一区| 欧美精品日韩综合在线| 久久xxxx| 亚洲免费人成在线视频观看| 亚洲狠狠丁香婷婷综合久久久| 久久激情久久| 午夜精品久久久久久| 99这里只有久久精品视频| 在线不卡免费欧美| 国内精品久久久久久影视8| 国产精品久久久久影院亚瑟|