1. 程式人生 > >C++程式設計風格和文件

C++程式設計風格和文件


所謂的程式設計風格(programming style),就是如何安排程式的外觀樣式。即使我們把一個程式寫成只有一行的形式,它也完全可以正確編譯和執行,但“一行程式”是一種不好的程式設計風格,因為這樣的程式難讀、難理解。文件(document)就是附屬程式的說明性註釋。程式設計風格和註釋與編碼同樣重要。好的程式設計風格和適當的文件會降低發生錯誤的可能性,使程式更為易讀。

課文例項:顯示當前時間

// 例項:顯示當前時間
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
	// Obtain the total seconds since the midnight, Jan 1.1970
	int totalSecomds = time(0);
	
	// Compute the current second in the minute in the hour
	int totalSecond = totalSecomds % 60;

	// Obtain the total minutes
	int totalMinutes = totalSecomds / 60;

	// Compute the current minute in the hour
	int totalMinute = totalMinutes % 60;

	// Obtain the total hours
	int totalHours = totalMinutes / 60;

	// Compute the current hour
	int currentHour = static_cast<int>(totalHours % 24);

	// Display results
	cout << "Current time is " << currentHour << ":" 
		<< totalMinute << ":" << totalSecond << " GMT" << endl;

	system("pause");
	return 0;
}


適當的註釋和註釋風格

在程式的開始部分,我們應該給出一段摘要,簡要描述這個程式要做什麼、它的關鍵特性、它支援的資料結構以及它所使用的獨特的技術。在一個較長的程式中,我們還應該加入一些註釋,介紹程式的主要步驟,解釋每一個難於理解的地方。註釋簡潔明瞭是很重要的,以免使程式顯得臃腫或難以理解。 要註釋一個函式內的步驟,使用行註釋(//)。
變數和常量的命名 就像現實世界中的每一個實體都有名字一樣,我們應該為程式中所使用的實體起一個名字。程式設計語言使用稱為識別符號(identifier)的特殊符號為變數、常量及函式等程式實體命名。識別符號命名的規則如下
  • 一個識別符號是一個字元序列,可以包含字母、數字和下劃線(_)。
  • 一個識別符號必須以一個字母或一個下劃線開頭,不能以字母開頭。
  • 不能使用保留字(也叫關鍵字)作為識別符號。
  • 一個識別符號理論上可以任意長,但我們使用的具體的C++編譯器可能會有限制,使用31個字元或者更短的識別符號可保證程式的可移植性。
  • 對於類名稱,大寫名稱中每個單詞的第一個字母;例如,類名ComputeArea。

由於C++是大小寫敏感的,因此,X與x是不同的識別符號。

習慣上,變數名使用小寫字母。如果一個變數名由多個單片語成,則將每個單詞的第一個字母大寫(第一個單詞除外),然後將它們串接起來。例如,radius和interestRate。

習慣上,常量的名字用大寫——PI和MAX_VALUE

。一個常量必須在一條語句中宣告並初始化


提示識別符號用於命名變數、函式及程式中其他實體。有意義的描述性識別符號會使程式更為易讀。除了選擇描述性的名字這一基本原則外,C++還有一套約定俗成的針對不同種類識別符號的命名習慣。

     警告不要使用以下劃線開頭的識別符號,以免混淆,因為C++編譯器可能為一些內部實體使用這類名字。

恰當的縮排和空白

在程式中使用一致的縮排風格,會使程式更為清晰易讀。縮排(indentation)的作用是顯示程式元件或語句之間的語法結構關係。即使一個程式的所有語句都放在一行內,C++編輯器也能正確分析,但是,如果能恰當地對齊語句,那麼程式碼的可讀性和可維護性就會更好。一種較好的方式是每一個子結構/語句比其父結構(嵌入的結構)縮排兩個空格

  • 在二元運算子的兩邊應該各放置一個空格,如下面語句所示:

bool b = 3 + 4 * 4 > 5 * (4 + 3) - ++i;

  • 使用空格分隔函式中的引數。不要在函式中的括號之前或之後留空格,例如:

aFunction(A1, A2)比aFunction( A1, A2 )更符合規範。

  •      在程式碼片段之間應該各放置一個空格,以使程式更為清晰易讀。

塊風格

塊是由括號包圍的一組語句。塊可以以多種方式編寫。例如,以下是等效的:

int main()
{
  // Display Welcome to C++ to the console
  cout << "Welcome to C++!" << endl;
  return 0;
}
  
 int main() {
  // Display Welcome to C++ to the console
  cout << "Welcome to C++!" << endl;
  return 0;
}

前者被稱為下行樣式,而後者,作為結束行樣式下行塊樣式用於C ++程式,而結束行樣式通常優先用於Java程式。

if-else Style

  if (cond1) 
  {
    // Statements
  }
  else if (cond2) 
  {
    // Statements
  }
  else if (cond3) 
  {
    // Statements
  }
  else 
  {
    // Statements
  }

for loop Style

  for (int i = 1; i < n; i++) 
  {
    // Statements
  }

while loop Style

  while (i < n) 
  {
    // Statements
  }

do-while loop Style

  do 
  {
    // Statements
  } while (i < n);

try-catch Style

  try 
  {
    // Statements
  } 
  catch (Exception ex)
  {
    // Handler
  } 

Summary

  • Use line comments to describe steps inside a function.(使用行註釋來描述函式內的步驟
  • Indent your statement two spaces.(縮排你的語句兩個空格
  • Use Next-Line style.(使用下行樣式
  • Leave a blank line before a comment line or a comment paragraph.(在註釋行或註釋段之前留空行