OpenCV 編碼樣式指南

pamxy發表於2013-07-07

轉自:ICVL幫助文件

前言
  本文件是對OpenCV中程式碼風格的簡短說明,因為OpenCV的核心庫(cv,cvaux)是用C和C++編寫的,所以本文件僅對用C和C++程式碼的編寫有效。

-------------------------------------------------------------
檔案命名
  所有cv和cvaux庫檔案的命名必須服從於以下規則:

所有的CV庫檔名字首為cv
混合的C/C++介面標頭檔案副檔名為 .h
純C++介面標頭檔案副檔名為 .hpp
實現副檔名為 .cpp
為了與POSIX相容,檔名都以小寫字元組成

--------------------------------------------------------------
檔案結構
  每個檔案以BSD相容的許可宣告(模板在Contributors_BSD_Licsense.htm檔案中可以找到)開頭;其它標頭檔案和實現檔案的規則包括:

一行最多90個字元,不包括行結束符
不使用製表符
縮排為4個空格符,所以製表符應該用1-4個空格替換(依據開始列確定)
  標頭檔案必須使用保護巨集,防止檔案被重複包含。混合C/C++介面標頭檔案用extern “C” { } 包含C語言定義。為了使預編譯頭機制在Visual C++中工作正常,原始檔必須在其它標頭檔案前包含precomp.h標頭檔案。  同時,請參見標頭檔案和實現檔案的示例。

--------------------------------------------------------------
命名約定
  OpenCV中使用大小寫混合樣式來標識外部函式、資料型別和類方法。巨集全部使用大寫字元,詞間用下劃線分隔。

所有的外部或內部名稱,若在多個檔案中可見,則必須含有字首:

外部函式使用字首cv
內部函式使用字首Icv
資料結構(C結構體、列舉、聯合體、類)使用字首Cv
外部或某些內部巨集使用字首CV_
內部巨集使用字首ICV_


--------------------------------------------------------------
函式介面設計
  為了保持庫的一致性,以如下方式設計介面非常重要。函式介面元素包括:

功能
名稱
返回值
引數型別
引數順序
引數預設值
  函式功能必須定義良好並保持精簡。函式應該容易鑲入到使用其它OpenCV和IPL函式的不同處理過程。函式名稱應該簡單並能體現函式的功能。以下是OpenCV中的一些基本命名模式:

大多數函式名形式:cv<ActionName>

相關文章