一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C/C++ - c++代碼各種注釋示例詳解

c++代碼各種注釋示例詳解

2022-03-10 14:20鹿九丸 C/C++

大家好,本篇文章主要講的是c++代碼各種注釋示例詳解,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽

1、前言

今天想帶大家來了解一下注釋,當(dāng)然,是C語言中的注釋,這個(gè)大家都并不會(huì)感到陌生,但是,當(dāng)有一天面試官問你?小伙子啊,你能給我講講什么是注釋嗎?大家應(yīng)該都會(huì)懵的吧,畢竟注釋有什么可講的呢?但是事實(shí)真的如此嗎?今天就由我來帶大家了解一下注釋吧!

 

2、正文(危)

1.以代碼例子為例

(1)代碼段1

首先來幾段注釋的例子大家來判斷下對(duì)錯(cuò)(從語法角度和是否實(shí)現(xiàn)注釋的效果來看)

#include <stdio.h>
int main()
{
	int /* */ i; 
	char* s = "abcdefgh //hijklmn";
	//Is it a\
	valid comment? 
	in/* */t j; 
	return 0;
}

當(dāng)大家把這段代碼放在vs上去運(yùn)行的時(shí)候,報(bào)錯(cuò)的代碼只有最后一行代碼,即in/* */t j;我們就知道這行代碼是有語法錯(cuò)誤的,那么其它的代碼就完全沒有問題了嗎?當(dāng)然,其它的代碼沒有了語法錯(cuò)誤,但是它們的注釋效果真正實(shí)現(xiàn)了嗎?

補(bǔ)充知識(shí):注釋被替換是在預(yù)處理階段實(shí)現(xiàn)的,注釋被替換,本質(zhì)是替換成空格,上述報(bào)錯(cuò)的那一句本質(zhì)上應(yīng)該是 in t i;編譯器自然會(huì)報(bào)錯(cuò),報(bào)錯(cuò)是在預(yù)處理階段進(jìn)行語法檢查時(shí)出錯(cuò)的,出現(xiàn)了語法錯(cuò)誤。

c++代碼各種注釋示例詳解

這個(gè)是編譯器上的標(biāo)識(shí)圖,上面的幾行代碼雖然沒有報(bào)語法錯(cuò)誤,但是有的代碼卻沒有真正實(shí)現(xiàn)其注釋的效果,下面我們將一行一行的帶大家來進(jìn)行分析!

首先看第一行:int   /* */   i;經(jīng)過替換后。中間的轉(zhuǎn)換為空格,可見并沒有語法錯(cuò)誤,且能夠達(dá)到注釋的目的。

接下來看第二行代碼,這個(gè)地方大家可能會(huì)感到疑惑了,我命名加了注釋符的啊,但是為什么沒有達(dá)到我想要的效果呢?這個(gè)地方的原因是因?yàn)?/是在字符串中,此時(shí)的第一個(gè)/被理解成了轉(zhuǎn)義字符,而第二個(gè)則真正被理解成了/,至于為什么第二個(gè)/沒有被理解成轉(zhuǎn)義字符呢?因?yàn)榈谝粋€(gè)/防止了后面的字母被轉(zhuǎn)義,所以后免的一個(gè)/才沒有被理解成是轉(zhuǎn)義字符,好像扯的有點(diǎn)遠(yuǎn)了。這個(gè)地方需要告訴大家的是在字符串中是無法進(jìn)行注釋的,因?yàn)樵谧址械?有特殊的含義!

有的朋友就好奇了,既然C++風(fēng)格的注釋行不通,那么C語言的風(fēng)格能否行得通呢?答案是不能,下面給大家證明一下吧!

c++代碼各種注釋示例詳解

很明顯,依舊沒有成功行注釋,原因同上。

接下來來看第三行代碼,我們可以得出一個(gè)結(jié)論,C++風(fēng)格的注釋是可以續(xù)行的!

(2)代碼段2

/*這是*/#/*一條*/define/*合法的*/ID/*預(yù)處理*/replacement/*指*/list/*令*/
//這段代碼指的就是用replacement list替換ID

當(dāng)這段代碼放到VS上是這樣的:

c++代碼各種注釋示例詳解

上述兩段代碼都能編譯通過,這說明# 和 define之間可以帶空格。(因?yàn)樽⑨屪罱K要被空格所代替)

//是C++風(fēng)格的注釋,而/* */則是C語言風(fēng)格的注釋,前者可以一次寫多個(gè),不過從第一個(gè)//往后就都是注釋的內(nèi)容。

(3)代碼段3

/*
/*
*/
*/

 這段代碼在vs中是下面這樣的:

c++代碼各種注釋示例詳解

 注意:/* */不能嵌套注釋。/*總是和離它最近的*/進(jìn)行匹配。

在這段代碼中,最終第一行和第三行中的*/進(jìn)行匹配,剩下最后一個(gè)*/沒有與之進(jìn)行配對(duì)的。

(4)代碼段4

int x = 10 ;
int y = 10;
int z = 5;
int *p = &z;
y = x/*p;

上面這種代碼一定要注意,乍一看沒有什么問題,但是接下來我們放到編譯器上看一下:

c++代碼各種注釋示例詳解

這種代碼一定要注意,/*容易被編譯器認(rèn)為是注釋,所以會(huì)報(bào)錯(cuò)。

解決方案有兩種:

1.y = x / *p;即在/后面加一個(gè)空格,不要讓/*連在一起。

2.y = x/(*p);(推薦用第二種)。

2.其它的注釋方法

(1)條件編譯

#include <stdio.h>
#include <windows.h>
#define MONEY 1(只有定義了前面的宏,ifdef到endif中間的這段代碼才能夠正常運(yùn)行,未定義則跳過)
int main()
{
#ifdef MONEY
	printf("for test1\n"); //test1
	printf("for test2\n"); //test2
#endif
	system("pause");
	return 0;
}

(2)if條件

可以通過if(0)來進(jìn)行注釋,但并不推薦。

到此這篇關(guān)于c++代碼各種注釋示例詳解的文章就介紹到這了,更多相關(guān)c++代碼注釋內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/m0_57304511/article/details/121665224

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: naruto tube18动漫 mm131亚洲精品久久 | voyeur多毛厕所 | 香蕉在线精品亚洲第一区 | 色呦呦tv | 91在线亚洲综合在线 | 201天天爱天天做 | 国产精品香蕉在线观看不卡 | 国产va免费精品高清在线观看 | va在线视频 | 欧美穿高跟鞋做爰 | 久草在在线免视频在线观看 | 午夜AV国产欧美亚洲高清在线 | 黄色wwwwww| 欧美男同videos | 5g影院成人 | 日本中文字幕在线观看视频 | 情趣内衣在线观看 | 成人网久久 | 国产三级跑 | 538免费精品视频搬运工 | 91久久夜色精品国产九色 | 色综合久久久 | 亚洲第一网色综合久久 | 久久精品国产清白在天天线 | 福利片成人午夜在线 | 亚洲99久久无色码中文字幕 | 亚洲免费小视频 | 色综色天天综合网 | 久九九精品免费视频 | 国产精品污双胞胎在线观看 | 久久精品麻豆国产天美传媒果冻 | 国产精品久久香蕉免费播放 | 亚洲福利电影一区二区? | 1024亚洲精品国产 | 91国产在线观看 | 亚洲丰满模特裸做爰 | 初尝黑人巨大h文 | 天天快乐在线观看 | 国产香蕉一区二区精品视频 | 13日本xxxxxxxxx18 1313午夜精品久久午夜片 | 三级无删减高清在线影院 |