1. 程式人生 > >C++ 高效程式設計之程式碼規範

C++ 高效程式設計之程式碼規範

本文將一些常用的程式碼註釋、命名等規範總結下,良好的程式碼規範不僅讓自己便於修改閱讀,對程式碼維護也是很重要的。

1. 版本和版本宣告

版本和版本檔案宣告位於標頭檔案和定義檔案的開頭,主要內容

(1)版本資訊

(2)檔名稱、識別符號、摘要

(3)當前的版本號、作者、修改日期

(4)版本歷史資訊

可以利用VS外掛自動生成,只需要自己填上作者的名字即可。

標頭檔案一般格式:

/********************************************************************
	created:	2014/09/27
	created:	27:9:2014   10:58
	filename: 	Win32Project1\BaseClass.h
	file path:	Win32Project1
	file base:	BaseClass
	file ext:	h
	author:		AT
	
	purpose:	示例類,規範程式碼風格
*********************************************************************/

#ifndef _BASECLASS_H_
#define _BASECLASS_H_                                                                                

2. 程式版式

(1)在每個類宣告之後、每個函式定義之後都要加上一個空行

(2)一行程式碼只做一件事情

(3)if、for、while、do各佔一行,執行語句不得緊跟其後,不論執行語句多少都加上{}

(4)儘量在定義一個變數的時候就初始化該變數

(5)程式分界符{和}必須獨佔一行並且左對齊

(6)程式碼長度不宜超過70至80個字元,超過之後拆成新行,操作符放在新行之首

(7)應該把*和&修飾符靠近變數名,例如int *x = &a

(8)類中建議先把public型別寫在前面,再寫private型別

3. 命名規則

(1)類名和函式名要用大寫字母開頭單片語成

(2)變數和引數要使用小寫字母開頭單片語成

(3)常量全用大寫字母,用下劃線分割單詞

(4)靜態變數加上字首s_,例如static int s_num

(5)全域性變數加上字首g_,例如int g_num

(6)類的資料成員前面加上m_,可以和成員函式和靜態成員區分開

4. 表示式和基本語句

(1)不可將bool值直接和true、false、0、1進行比較。如果flag是bool型別,直接if(flag)這樣判斷即可

(2)整型變數應該要直接和0比較,比如num為整型變數,if(num == 0)

(3)不可將浮點型變數直接用 == 和 !=來進行比較

(4)指標變數要直接和NULL進行比較,例如p為指標變數,if(p != NULL)

5. 函式設計

(1)函式引數的書寫要完整,如果沒有引數,用void填補

(2)如果引數有指標,並且該指標只是讀取作用應該要加上const,防止指標意外修改

(3)在函式的內部入口應該要對引數的有效性進行檢查

(4)函式的功能要單一,不要設計多用途的函式

(5)函式體的規模要小,控制在50行程式碼

6. 記憶體管理

(1)malloc和new申請記憶體之後,應該要立即檢查指標是否為NULL,防止使用指標值為NULL的記憶體。

(2)要對陣列和動態記憶體賦初值,防止將未初始化的記憶體作為右值使用

(3)用free或delete釋放了記憶體之後,立即將指標指向NULL,防止產生野指標。

相關推薦

C++ 高效程式設計程式碼規範

本文將一些常用的程式碼註釋、命名等規範總結下,良好的程式碼規範不僅讓自己便於修改閱讀,對程式碼維護也是很重要的。 1. 版本和版本宣告 版本和版本檔案宣告位於標頭檔案和定義檔案的開頭,主要內容 (1)版本資訊 (2)檔名稱、識別符號、摘要 (3)當前的版本號、作

高效程式碼調錯系列程式碼規範】——讓軟體學會自己尋找缺陷

前言 確保你的出錯資訊可以幫助你除錯錯誤,不能只提醒你需要除錯錯誤。 使用斷言 程式碼的每一塊都建立在一個無數假設的平臺上面——某些條件必須是正確的才能讓執行結果符合預期。往往缺陷的出現是因為某些假設不成立或者是錯誤的。避免做出這些假設是不可

C語言高效程式設計程式碼優化

在本篇文章中,我收集了很多經驗和方法。應用這些經驗和方法,可以幫助我們從執行速度和記憶體使用等方面來優化C語言程式碼。 簡介 在最近的一個專案中,我們需要開發一個執行在移動裝置上但不保證影象高質量的輕量級JPEG庫。期間,我總結了一些讓程式執行更快的方法。

C# socket 程式設計 accept() 函式返回值解析

accept() 函式會返回一個新的套接字,這個新的套接字在伺服器端與客戶端進行通訊。 伺服器端的繫結監聽是一個套接字,與客戶端通訊的是另一個套接字(accept函式返回的套接字,注意這裡不是返回客戶端的套接字,返回的套接字是新建立在伺服器上的,與客戶端收發訊息用的) 下面這段程式碼,是

Python3 與 C# 網路程式設計~ 網路基礎篇

最新版本檢視:https://www.cnblogs.com/dotnetcrazy/p/9919202.html 入門篇 官方文件:https://docs.python.org/3/library/ipc.html(程序間通訊和網路) 例項程式碼:https://github.com/lotapp/

javascript基礎 程式碼規範

1,變數名   1,變數名推薦使用小駝峰寫法:類似於:firstName   2,全域性變數和常量建議用大寫:PI   3,支援下劃線 2,縮排   1,一般使用4個空格當作縮排,tab建議少用   2,運算子左右和左花括號前建議使用空格:var x = a + b ;   3,以分號作為結束符

現代C語言程式設計資料計算

現代C語言程式設計之資料計算 C語言程式設計 3.1 運算子概述 計算機最核心的任務就是完成資料的計算,C語言提供了豐富(多達34種)的運算子來實現不同資料的各種運算,之前在求資料型別的大小時已經使用過的sizeof()

洞悉C++網路程式設計tcp/ip和socket api

原文地址:https://blog.csdn.net/libaineu2004/article/details/79020403 TCP(Transmission Control Protocol) 傳輸控制協議 三次握手 TCP是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次

Python3 與 C# 併發程式設計~ 執行緒上篇

2.2.加強篇¶ 其實以前的Linux中是沒有執行緒這個概念的,Windows程式設計師經常使用執行緒,這一看~方便啊,然後可能是當時程式設計師偷懶了,就把程序模組改了改(這就是為什麼之前說Linux下的多程序程式設計其實沒有Win下那麼“重量級”),弄了個精簡版程序==>執行緒(核心是分不出程序

結對作業程式碼規範

縮排:縮排使用4個空格的方式; 括號:在複雜的條件表示式中,用括號清楚的表示邏輯優先順序; 斷行與空白的{}行:程式結構風格使用斷行和空白的{}行; (在程式除錯時期需要單步執行需要斷行,在程式複雜程式碼量大時空白{}使結構清晰明瞭) 分行:在定義不同變數或對多個變數進行賦值

Javascript筆記(五) 程式碼規範

前言:為什麼需要程式碼規範 程式碼規範的意義 在ECMAScript之中,所有的程式碼都是由語句來構成的。語句表明執行過程中的流程、限定與約定,形式上可以是單行語句或一對大擴後{}擴起來的複合語句,在語法描述中,複合語句整體可以作為一個單行語句處理。 JavaS

c++ 網路程式設計socket

windows 10 structures sockaddr, sockaddr_in sockaddr 和 sockaddr_in 同樣都是為了處理網路通訊的地址,包含了地址類別(familty),地址(ip),埠資訊。 sockaddr是給機器用的,

現代C語言程式設計資料儲存

C語言  2.1 計算機資訊資料儲存 2.1.1 計算機資訊資料儲存單位 在計算機最底層,資料都是以二進位制(01010)的方式儲存,而計算機中最小的儲存單位是位(bit),用來表示0或者1。計算機中最基本的儲存單位是位元組(Byte),1個位元組對應8個位(B

高效程式設計IDEA註釋模板

idea註釋模板 建立的檔案註釋模板 /** * Copyright (C), 2002-2018, xxx有限公司 * @Author: 工號 姓名 * @Date: ${DATE} ${TIME} * @Description: //描述當前類所屬模組 TODO * @Hi

高效程式設計IDEA外掛篇

阿里巴巴Java開發規約掃描外掛-Alibaba Java Coding Guidelines https://blog.csdn.net/xvshu/article/details/78263195 程式碼規範外掛 - checkStyle-idea http://www.cnblogs.

高效程式設計IDE配置篇

IDE配置篇之IntelliJ IDEA 自動編譯開關 在IDEA中,需要手動將其開啟!如下所示 忽略匹配大小寫開關 該配置的作用為智慧提示 配置none 配置all 配置firster 什麼也沒有提示 智慧導包開關

少兒程式設計程式碼程式設計

程式設計是編寫程式的中文簡稱,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式執行,並最終得到相應結果的過程。 為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某

c++併發程式設計thread::join()和thread::detach()

thread::join(): 阻塞當前執行緒,直至 *this 所標識的執行緒完成其執行。*this 所標識的執行緒的完成同步於從 join() 的成功返回。 該方法簡單暴力,主執行緒等待子程序期間什麼都不能做。thread::join()會清理子執行緒相關的記憶體空間,

Winform/C#入門程式設計第二部分常用控制元件(九:進度條控制元件ProgressBar)

簡介:         介紹進度條控制元件ProgressBar。常用於上傳、下載等,來體現進度。給使用者提示當前執行的進度,防止被認為介面卡主或宕機。   介紹: 1.屬性 常用屬性

Winform/C#入門程式設計第二部分常用控制元件(八:列表控制元件ListBox)

簡介:         介紹列表控制元件ListBox。常用於日誌的顯示。   介紹: 1.屬性 常用屬性 Name 獲取或設定控制元件的名稱。 Ho