深入理解C代码中的注释
生活随笔
收集整理的這篇文章主要介紹了
深入理解C代码中的注释
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
深入理解C代碼中的注釋
C 語言的注釋可以出現在C 語言代碼的任何地方?錯!我們就看看下面的例子:
A) int/*...*/i;
B) char* s="abcdefgh //hijklmn";?
C) //Is it a \ valid comment?
D) in/*…*/t i;
C 語言里可以有兩種注釋方式:/* */ 和//。上述前3條注釋都是正確的,最后一條不正確。
1)A)來說有人認為編譯器剔除掉注釋后代碼會被解析成inti,所以不正確。編譯器的確會將注釋剔除,但不是簡單的剔除,而是用空格代替原來的注釋。
2)B) 我們知道雙引號引起來的都是字符串常量,那雙斜杠也不例外。
3)C)這是一條合法的注釋,因為\是一個接續符即表示斷行,編譯器會將反斜杠剔除掉,跟在反斜杠后面的字符自動接續到前一行。但是注意:反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格。
4)D) 前面說過注釋會被空格替換
5)/*…*/這種形式的注釋不能嵌套,如: /*這是/*非法的*/*/因為/*總是與離它最近的*/匹配。
6)y = x/*p,這是表示x 除以p 指向的內存里的值,把結果賦值為y?編譯器提示出錯。實際上,編譯器把/*當作是一段注釋的開始,把/*后面的內容都當作注釋內容,直到出現*/為止。這個表達式其實只是表示把x 的值賦給y,/*后面的內容都當作注釋。但是,由于沒有找到*/,所以提示出錯。?
? 我們可以把上面的表達式修改一下: y = x/ *p 或者 y = x/(*p) 這樣的話,表達式的意思就是x 除以p 指向的內存里的值,把結果賦值為y 了。也就是說只要斜杠(/)和星號(*)之間沒有空格,都會被當作注釋的開始。這一點一定要注意。
C 語言的注釋可以出現在C 語言代碼的任何地方?錯!我們就看看下面的例子:
A) int/*...*/i;
B) char* s="abcdefgh //hijklmn";?
C) //Is it a \ valid comment?
D) in/*…*/t i;
C 語言里可以有兩種注釋方式:/* */ 和//。上述前3條注釋都是正確的,最后一條不正確。
1)A)來說有人認為編譯器剔除掉注釋后代碼會被解析成inti,所以不正確。編譯器的確會將注釋剔除,但不是簡單的剔除,而是用空格代替原來的注釋。
2)B) 我們知道雙引號引起來的都是字符串常量,那雙斜杠也不例外。
3)C)這是一條合法的注釋,因為\是一個接續符即表示斷行,編譯器會將反斜杠剔除掉,跟在反斜杠后面的字符自動接續到前一行。但是注意:反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格。
4)D) 前面說過注釋會被空格替換
5)/*…*/這種形式的注釋不能嵌套,如: /*這是/*非法的*/*/因為/*總是與離它最近的*/匹配。
6)y = x/*p,這是表示x 除以p 指向的內存里的值,把結果賦值為y?編譯器提示出錯。實際上,編譯器把/*當作是一段注釋的開始,把/*后面的內容都當作注釋內容,直到出現*/為止。這個表達式其實只是表示把x 的值賦給y,/*后面的內容都當作注釋。但是,由于沒有找到*/,所以提示出錯。?
? 我們可以把上面的表達式修改一下: y = x/ *p 或者 y = x/(*p) 這樣的話,表達式的意思就是x 除以p 指向的內存里的值,把結果賦值為y 了。也就是說只要斜杠(/)和星號(*)之間沒有空格,都會被當作注釋的開始。這一點一定要注意。
總結
以上是生活随笔為你收集整理的深入理解C代码中的注释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 枚举enum与#define 宏的区别?
- 下一篇: 如何理解*(int *)0x12ff7c