欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年12月07日 09:41:42   作者:鹿九丸  
大家好,本篇文章主要講的是c++代碼各種注釋示例詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

1、前言

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

2、正文(危)

1.以代碼例子為例

(1)代碼段1

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

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

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

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

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

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

接下來看第二行代碼,這個地方大家可能會感到疑惑了,我命名加了注釋符的啊,但是為什么沒有達到我想要的效果呢?這個地方的原因是因為//是在字符串中,此時的第一個/被理解成了轉義字符,而第二個則真正被理解成了/,至于為什么第二個/沒有被理解成轉義字符呢?因為第一個/防止了后面的字母被轉義,所以后免的一個/才沒有被理解成是轉義字符,好像扯的有點遠了。這個地方需要告訴大家的是在字符串中是無法進行注釋的,因為在字符串中的/有特殊的含義!

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

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

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

(2)代碼段2

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

當這段代碼放到VS上是這樣的:

上述兩段代碼都能編譯通過,這說明# 和 define之間可以帶空格。(因為注釋最終要被空格所代替)

//是C++風格的注釋,而/* */則是C語言風格的注釋,前者可以一次寫多個,不過從第一個//往后就都是注釋的內容。

(3)代碼段3

/*
/*
*/
*/

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

?注意:/* */不能嵌套注釋。/*總是和離它最近的*/進行匹配。

在這段代碼中,最終第一行和第三行中的*/進行匹配,剩下最后一個*/沒有與之進行配對的。

(4)代碼段4

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

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

這種代碼一定要注意,/*容易被編譯器認為是注釋,所以會報錯。

解決方案有兩種:

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

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

2.其它的注釋方法

(1)條件編譯

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

(2)if條件

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

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

相關文章

  • C++ Boost Bimap示例詳細講解

    C++ Boost Bimap示例詳細講解

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • C語言近萬字為你講透棧和隊列

    C語言近萬字為你講透棧和隊列

    對于線性表,我們可能要執(zhí)行下列操作:訪問表的第k個結點、在k這個結點之前或者之后插入一個新結點,抑或是刪除第k個結點等等操作,其中我們會遇到值對第一個或者最后一個結點插入、刪除、和訪問值的線性表,我們給它們以特殊的名稱:棧、隊列、雙端隊列
    2022-05-05
  • C語言實現(xiàn)文件操作實例(簡單圖示講解)

    C語言實現(xiàn)文件操作實例(簡單圖示講解)

    與普通文件載體不同,文件是以硬盤為載體存儲在計算機上的信息集合,文件可以是文本文檔、圖片、程序等等,下面這篇文章主要給大家介紹了關于C語言實現(xiàn)文件操作實例的相關資料,需要的朋友可以參考下
    2023-02-02
  • OpenCV實現(xiàn)馬賽克和毛玻璃濾鏡特效

    OpenCV實現(xiàn)馬賽克和毛玻璃濾鏡特效

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)馬賽克和毛玻璃濾鏡特效,具有一定的參考價值,感興趣的小伙伴們可以參考一下方法
    2019-05-05
  • C語言實現(xiàn)俄羅斯方塊源代碼

    C語言實現(xiàn)俄羅斯方塊源代碼

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)俄羅斯方塊的源代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • c++加法高精度算法的簡單實現(xiàn)

    c++加法高精度算法的簡單實現(xiàn)

    下面小編就為大家?guī)硪黄猚++加法高精度算法的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • C語言初識變量常量字符串轉義符及注釋方式簡介

    C語言初識變量常量字符串轉義符及注釋方式簡介

    最強的C語言筆記,此處對于C語言的基礎部分做一個簡要的介紹,作者實屬初學,寫博客也是作者學習的一個過程,若文中內容有理解不到位或者有不當之處,還請朋友們不吝指正
    2021-11-11
  • C++ OpenCV繪制幾何圖形

    C++ OpenCV繪制幾何圖形

    這篇文章主要為大家詳細介紹了C++ OpenCV繪制幾何圖形,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • c++中比較好用的“黑科技”

    c++中比較好用的“黑科技”

    這篇文章主要介紹了c++中比較好用的“黑科技”,一些常用小編沒有給大家羅列出,主要給大家介紹了sort函數(shù),需要的朋友可以參考下
    2020-02-02
  • VS編譯出現(xiàn)MSB3073命令的解決方案

    VS編譯出現(xiàn)MSB3073命令的解決方案

    =error MSB3073是Visual Studio編譯器報出的錯誤,本文主要介紹了VS編譯出現(xiàn)MSB3073命令的解決方案,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09

最新評論