在我們的程序變得更復(fù)雜之前,我們先看看C++是如何處理注釋的。注釋可以幫助人們閱讀程序。在典型情況下,它們用于總結(jié)算法、表明變量的目的或澄清其它一些模糊的代碼片段。注釋不會(huì)增加可執(zhí)行程序的大小。編譯器會(huì)忽略所有注釋。
在C++中有兩種類(lèi)型的注釋?zhuān)簡(jiǎn)涡凶⑨尯统蓪?duì)注釋。單行注釋以雙斜線(xiàn)(//)開(kāi)頭。同一行中斜線(xiàn)右側(cè)的所有內(nèi)容都是注釋?zhuān)瑫?huì)被編譯器略過(guò)。
另一個(gè)分隔符是注釋符號(hào)對(duì)(/* */),它繼承自C語(yǔ)言。這種注釋以/*開(kāi)始,以*/結(jié)尾。編譯器把/*和*/之間的部分都作為注釋來(lái)處理:
#include
/* 簡(jiǎn)單的main函數(shù): 讀入兩個(gè)數(shù)字并輸出結(jié)果 */
int main()
{
// 提示用戶(hù)輸入數(shù)字
std::cout << "Enter two numbers:" << std::endl;
int v1, v2; // 初始化了的
std::cin >> v1 >> v2; // 讀取輸入
return 0;
}
注釋符號(hào)對(duì)可以放置在允許輸入tab、空格或新行的任何地方。注釋符號(hào)對(duì)可以跨越程序的多個(gè)行,但是不是必須這樣做的。當(dāng)注釋符號(hào)對(duì)沒(méi)有跨越多個(gè)行,通常表明內(nèi)部行是多行注釋的一部分。我們的樣式是每行以星號(hào)開(kāi)始,因此表明整個(gè)范圍都是多行注釋的部分。
典型情況下程序包含多種注釋形式。注釋符號(hào)對(duì)通常用做多行解釋?zhuān)p斜線(xiàn)注釋傾向于半行或單行注釋。
程序中混合了太多的注釋可能使代碼混亂。通常在要解釋的代碼上方放置注釋。
隨著代碼的改變,注釋也應(yīng)該保持更新。程序員希望注釋是精確的,并且很相信它們,即使其它形式的系統(tǒng)文檔過(guò)期了。不正確的注釋比沒(méi)有注釋還有糟糕,因?yàn)樗鼤?huì)誤導(dǎo)隨后的閱讀者。
注釋符號(hào)對(duì)不能嵌套
以/*開(kāi)始的注釋通常以*/結(jié)束。其結(jié)果是一個(gè)注釋符號(hào)對(duì)不能出現(xiàn)在另一個(gè)之中。這類(lèi)程序錯(cuò)誤導(dǎo)致的編譯器錯(cuò)誤消息可能難以理解。例如,在你的系統(tǒng)上編譯下面的程序:
#include
/*
* 注釋符號(hào)對(duì) /* */ 不能嵌套。
* "不能嵌套" 會(huì)被認(rèn)為是源代碼的一部分
*/
int main()
{
return 0;
}
當(dāng)你注釋一大段程序的時(shí)候,看起來(lái)把注釋符號(hào)對(duì)放在你希望臨時(shí)略過(guò)的部分是最容易的。問(wèn)題是如果那段代碼已經(jīng)有了注釋符號(hào)對(duì),那么新插入的注釋將過(guò)早地終止。臨時(shí)忽略一段代碼的更好的辦法是使用編輯器在希望忽略的代碼的每一行前面插入單行注釋。使用這種方法的時(shí)候,你就不必?fù)?dān)心自己注釋的代碼是否包含注釋符號(hào)對(duì)。
在C++中有兩種類(lèi)型的注釋?zhuān)簡(jiǎn)涡凶⑨尯统蓪?duì)注釋。單行注釋以雙斜線(xiàn)(//)開(kāi)頭。同一行中斜線(xiàn)右側(cè)的所有內(nèi)容都是注釋?zhuān)瑫?huì)被編譯器略過(guò)。
另一個(gè)分隔符是注釋符號(hào)對(duì)(/* */),它繼承自C語(yǔ)言。這種注釋以/*開(kāi)始,以*/結(jié)尾。編譯器把/*和*/之間的部分都作為注釋來(lái)處理:
#include
/* 簡(jiǎn)單的main函數(shù): 讀入兩個(gè)數(shù)字并輸出結(jié)果 */
int main()
{
// 提示用戶(hù)輸入數(shù)字
std::cout << "Enter two numbers:" << std::endl;
int v1, v2; // 初始化了的
std::cin >> v1 >> v2; // 讀取輸入
return 0;
}
注釋符號(hào)對(duì)可以放置在允許輸入tab、空格或新行的任何地方。注釋符號(hào)對(duì)可以跨越程序的多個(gè)行,但是不是必須這樣做的。當(dāng)注釋符號(hào)對(duì)沒(méi)有跨越多個(gè)行,通常表明內(nèi)部行是多行注釋的一部分。我們的樣式是每行以星號(hào)開(kāi)始,因此表明整個(gè)范圍都是多行注釋的部分。
典型情況下程序包含多種注釋形式。注釋符號(hào)對(duì)通常用做多行解釋?zhuān)p斜線(xiàn)注釋傾向于半行或單行注釋。
程序中混合了太多的注釋可能使代碼混亂。通常在要解釋的代碼上方放置注釋。
隨著代碼的改變,注釋也應(yīng)該保持更新。程序員希望注釋是精確的,并且很相信它們,即使其它形式的系統(tǒng)文檔過(guò)期了。不正確的注釋比沒(méi)有注釋還有糟糕,因?yàn)樗鼤?huì)誤導(dǎo)隨后的閱讀者。
注釋符號(hào)對(duì)不能嵌套
以/*開(kāi)始的注釋通常以*/結(jié)束。其結(jié)果是一個(gè)注釋符號(hào)對(duì)不能出現(xiàn)在另一個(gè)之中。這類(lèi)程序錯(cuò)誤導(dǎo)致的編譯器錯(cuò)誤消息可能難以理解。例如,在你的系統(tǒng)上編譯下面的程序:
#include
/*
* 注釋符號(hào)對(duì) /* */ 不能嵌套。
* "不能嵌套" 會(huì)被認(rèn)為是源代碼的一部分
*/
int main()
{
return 0;
}
當(dāng)你注釋一大段程序的時(shí)候,看起來(lái)把注釋符號(hào)對(duì)放在你希望臨時(shí)略過(guò)的部分是最容易的。問(wèn)題是如果那段代碼已經(jīng)有了注釋符號(hào)對(duì),那么新插入的注釋將過(guò)早地終止。臨時(shí)忽略一段代碼的更好的辦法是使用編輯器在希望忽略的代碼的每一行前面插入單行注釋。使用這種方法的時(shí)候,你就不必?fù)?dān)心自己注釋的代碼是否包含注釋符號(hào)對(duì)。

