隱藏空格符號(hào) 代碼中的注釋和空行會(huì)占用代碼空間嗎?
代碼中的注釋和空行會(huì)占用代碼空間嗎?這種問題,第一是看C語言的標(biāo)準(zhǔn)怎么定義的,第二是看編譯器是怎么處理的。例如,ANSI C語言標(biāo)準(zhǔn),對(duì)注釋的定義如下:簡單地解釋下:除了在一個(gè)字符常量,字符串或者一個(gè)
代碼中的注釋和空行會(huì)占用代碼空間嗎?
這種問題,第一是看C語言的標(biāo)準(zhǔn)怎么定義的,第二是看編譯器是怎么處理的。例如,ANSI C語言標(biāo)準(zhǔn),對(duì)注釋的定義如下:簡單地解釋下:除了在一個(gè)字符常量,字符串或者一個(gè)注釋中,/* 這兩個(gè)字符會(huì)引進(jìn)一個(gè)注釋,直到遇到 */除了在一個(gè)字符常量,字符串或者一個(gè)注釋中,// 這兩個(gè)字符會(huì)引進(jìn)一個(gè)注釋,直到遇到一個(gè)斷行符,但斷行符本身不認(rèn)為是注釋的一部分第三部分就是各種例子了。但是在實(shí)際編譯過程中,還得看編譯器是不是完全采用這些標(biāo)準(zhǔn)?;蛘?,對(duì)于標(biāo)準(zhǔn)未定義的情況,也是得看編譯器的實(shí)際實(shí)現(xiàn)。例如,有些編譯器處理注釋時(shí),是將 /**/ 全部移除,而有些編譯器會(huì)在移除后,添加一個(gè)空格。那么下面的情況,顯然是無法成功編譯的。in/**/t i例如,有些編譯器可以在 / **/ 里再嵌套一個(gè) /**/,而有些編譯器卻不行。書上說可以,其實(shí)只是在講,不考慮那些奇奇怪怪的情況??偟膩碇v,這些情況大概知道就行了,平時(shí)基本上不會(huì)遇到這些奇奇怪怪的情況的,咱又不參加C語言混亂代碼大賽。