欧美在线专区-欧美在线伊人-欧美在线一区二区三区欧美-欧美在线一区二区三区-pornodoxxx中国妞-pornodoldoo欧美另类

position>home>Basketball

CC++預處理指令defineifdefifndefendif…

  本來只是預處想了解一下#ifdef,#ifndef,#endif的,沒想到查出來這么多的理指令預處理指令,上面的預處多數都是常見的,但是理指令平時沒有怎么注意預處理這方面的內容,所以這里梳理一下知識吧。預處同時有什么不妥的理指令地方,或者遺漏了什么內容,預處還請留言指出。理指令

CC++預處理指令defineifdefifndefendif…

  預處理指令是預處以#號開頭的代碼行。#號必須是理指令該行除了任何空白字符外的第一個字符。#后是預處指令關鍵字,在關鍵字和#號之間允許存在任意個數的理指令空白字符。整行語句構成了一條預處理指令,預處該指令將在編譯器進行編譯之前對源代碼做某些轉換。理指令

  以前沒有在意的預處學者注意了,預處理指令是在編譯器進行編譯之前進行的操作.預處理過程掃描源代碼,對其進行初步的轉換,產生新的源代碼提供給編譯器。可見預處理過程先于編譯器對源代碼進行處理。在很多編程語言中,并沒有任何內在的機制來完成如下一些功能:在編譯時包含其他源文件、定義宏、根據條件決定編譯時是否包含某些代碼(防止重復包含某些文件)。要完成這些工作,就需要使用預處理程序。盡管在目前絕大多數編譯器都包含了預處理程序,但通常認為它們是獨立于編譯器的。預處理過程讀入源代碼,檢查包含預處理指令的語句和宏定義,并對源代碼進行響應的轉換。預處理過程還會刪除程序中的注釋和多余的空白字符。

  這個預處理指令,我想是見得最多的一個,簡單說一下,第一種方法是用尖括號把頭文件括起來。這種格式告訴預處理程序在編譯器自帶的或外部庫的頭文件中搜索被包含的頭文件。第二種方法是用雙引號把頭文件括起來。這種格式告訴預處理程序在當前被編譯的應用程序的源代碼文件中搜索被包含的頭文件,如果找不到,再搜索編譯器自帶的頭文件。采用兩種不同包含格式的理由在于,編譯器是安裝在公共子目錄下的,而被編譯的應用程序是在它們自己的私有子目錄下的。一個應用程序既包含編譯器提供的公共頭文件,也包含自定義的私有頭文件。采用兩種不同的包含格式使得編譯器能夠在很多頭文件中區別出一組公共的頭文件。

  有關#define這個宏定義,在C語言中使用的很多,因為#define存在一些不足,C++強調使用const來定義常量。宏定義了一個代表特定內容的標識符。預處理過程會把源代碼中出現的宏標識符替換成宏定義時的值。記住僅僅是進行標識符的替換。下面列舉一些#define的使用:

  * (1)三元運算符要比if,else效率高 * (2)宏的使用一定要細心,需要把參數小心的用括號括起來, * 因為宏只是簡單的文本替換,不注意,容易引起歧義錯誤。

  *首先說明,這個宏的定義是錯誤的。并沒有實現程序中的B+2的平方 * 預處理的時候,替換成如下的結果:b+2*b+2 * 正確的宏定義應該是:#define SQR(x) ((x)*(x)) * 所以,盡量使用小括號,將參數括起來。

  (絕大多數是使用不到這些的,使用到的話,查看手冊就可以了) * 第一個宏,用#把參數轉化為一個字符串 * 第二個宏,用##把2個宏參數粘合在一起,及aeb,2e3也就是2000

  WORD_HI(xxx) ((byte)((word)(xxx) 8))

  * 一個字2個字節,獲得低字節(低8位),與255(0000,0000,1111,1111)按位相與 * 獲得高字節(高8位),右移8位即可。

  關于#define宏的使用,應該特別小心,尤其是含有參數計算的時候如小2示例,最保險的做法將參數用括號括起來。

  預處理就是在進行編譯的第一遍詞法掃描和語法分析之前所作的工作。說白了,就是對源文件進行編譯前,先對預處理部分進行處理,然后對處理后的代碼進行編譯。這樣做的好處是,經過處理后的代碼,將會變的很精短。

Popular articles

主站蜘蛛池模板: 紧窄极品名器美妇灌| 3d动漫精品啪啪一区二区中| 打开腿我想亲亲你下面视频| 94久久国产乱子伦精品免费| 亚洲一级毛片在线观| 久久综合一本| 久久精品麻豆日日躁夜夜躁| 国产欧美日韩一区二区三区| 99久久国产综合精品麻豆 | 香蕉视频yy| 美女的阴沟| 太深了灬太大了灬舒服| 波多野结衣教师中文字幕| 欧美午夜久久| 国产欧美精品一区二区色综合 | 天天夜夜狠狠| 男生插入女生下面视频| 四虎4hutv永久在线影院| 成年女人在线视频| 亚洲欧美综合另类| 国产精品一卡二卡三卡| 美女张开双腿让男生捅| 太深太粗太爽太猛了视频| 在线观看北条麻妃| 真实国产乱子伦对白视频 | 日本三级在线| 一级毛片无毒不卡直接观看| 黑人巨茎大战欧美白妇| 日本三区四区免费高清不卡| 国产馆在线观看免费的| 久久精品国产99久久香蕉 | 女人张开腿日出白浆视频| 亚洲欧美在线精品一区二区| 里番牝教师~淫辱yy608| 经典三级完整版电影在线观看| 亚洲性色高清完整版在线观看| 色悠久久久久综合欧美99| 日本在线高清版卡免v| 日韩福利在线| 狠狠色噜噜狠狠狠狠97不卡| a毛片在线看片免费|