久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Linux內(nèi)核中#,##,_ _VA_ARGS_ _的用法

 Mytez 2017-03-10
  Linux內(nèi)核中#,##,_ _VA_ARGS_ _的用法

  2011-11-13 21:03

  連接符 ##(兩個井號)

  不知道什么符 #(一個井號)

  ## 連接符號由兩個井號組成,,其功能是在帶參數(shù)的宏定義中將兩個子串(token)聯(lián)接起來,從而形成一個新的子串,。但它不可以是第一個或者最后一個子串。所謂的子串(token)就是指編譯器能夠識別的最小語法單元,。具體的定義在編譯原理里有詳盡的解釋

  #符是把傳遞過來的參數(shù)當(dāng)成字符串進(jìn)行替代,。

  假設(shè)程序中已經(jīng)定義了這樣一個帶參數(shù)的宏:

  #define PRINT( n ) printf( 'token' #n ' = %d', token##n )

  同時又定義了二個整形變量:

  int token9 = 9;

  現(xiàn)在在主程序中以下面的方式調(diào)用這個宏:

  PRINT( 9 );

  那么在編譯時,,上面的這句話被擴(kuò)展為:

  printf( 'token' '9' ' = %d', token9 );

  注意到在這個例子中,PRINT(9);中的這個”9”被原封不動的當(dāng)成了一個字符串,,與”token”連接在了一起,從而成為了token9,。而#n也被”9”所替代,。

  可想而知,,上面程序運(yùn)行的結(jié)果就是在屏幕上打印出token9=9

  還有點(diǎn)不明白?

  再來一個例子:

  #define PRINT( n ) printf( 'token' #n ' = %d', game##n )

  int token9 = 9;

  int game9 = 99;

  調(diào)用:

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多