IJG JPEG 函數庫:檔案清單說明

來源:互聯網
上載者:User
IJG JPEG 函數庫:代碼規則

著作權 (C) 1991-1996, Thomas G. Lane.
本文是Independent JPEG Group軟體中的一部分。
針對於如何分發與使用,請參照隨本庫一起發放的README 檔案。

由於很多程式員將會為完善代碼與bug修複中而共同努力,因此,統一編碼風格將是很重要的一件事。使用相似的編碼風格的目的不在於風格的細枝末節,而在統一的重要性。

一般,我們遵從推薦標準"Recommended C Style and Coding
Standards"(C代碼標準和編碼風格推薦標準)的6.1版(Cannon等人。由Spencer,
Keppel和Brader修訂)。該文檔可在IJG
FTP目錄中找到(參見jpeg/doc/cstyle.ms.tbl.Z,或者專為沒有nroff/tbl
r的使用者提供的cstyle.txt.Z)。

註解區塊應以下列方式布局:
/*
* Block comments in this style.
*/

我們使用K&R風格來對語句進行縮排,例如,
if (test) {
then-part;
} else {
else-part;
}
每一級縮排使用兩個空格。(這種縮排習俗由GNU
Emacs或其他文字編輯器自動完成。)

多個單片語成的名稱應該以小寫加底線方式,例如,multi_word_name
(不是multiWordName)。前置處理器符號和枚舉常量相似,但應使用大寫形式(MULTI_WORD_NAME)。在前15個字元之內,名稱應該保持唯一。(對一些老系統而言,全域變數名應在6位以內保持唯一。我們在不引起混亂的情況下,通過使用宏來代替較短的名稱的方法來解決這個問題。)

我們可在任何地方使用函數原形;我們依賴於自動代碼轉換來彌補缺少原型的C編譯器。轉換是通過簡單輕便的工具'ansi2knr.c'(蒙Ghostscript的好意)來完成的。ansi2knr並不是很智能化,因此要求在函式宣告時要注意格式問題:函數名MUST
BEGIN IN COLUMN 1。因此所有的函數都應該這樣寫:

LOCAL(int *)
function_name (int a, char *b)
{
code...
}
註:每個函數定義必須以GLOBAL(type), LOCAL(type),或
METHODDEF(type)開頭。這些宏適當地擴充了"static type"
或僅僅是"type"。它們為函數的用法提供了一種可讀性較好的標識且可為特殊的需求備用。(例如,特殊的連結詞可被插入以便Windows
DLLs使用。)

ansi2knr不能轉換方法聲明(結構體的中的函式宣告)。我們用JMETHOD來解決,JMETHOD的定義如下:
#ifdef HAVE_PROTOTYPES
#define JMETHOD(type,methodname,arglist) type (*methodname) arglist
#else
#define JMETHOD(type,methodname,arglist) type (*methodname) ()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.