c語言書寫規范
㈠ c語言中注釋的位置
1、可以使用/*和*/分隔符來標注一行內的注釋,也可以標注多行的注釋。例如,在下列的函數原型中,省略號的意思是 open() 函數有第三個參數,它是可選參數。注釋解釋了這個可選參數的用法:
int open( const char *name, int mode, … /* int permissions */ );
2、可以使用//插入整行的注釋,或者將源代碼寫成兩列分欄的格式,程序在左列,注釋在右列:
const double pi = 3.1415926536; // pi是—個常量
(1)c語言書寫規范擴展閱讀
在 C99 標准中,單行注釋正式加入C語言,但是大部分編譯器在 C99 之前就已經開始支持這種用法。有時候,其被稱作「C++風格」的注釋,但實際上,其源自於C的前身 BCPL。
1、在引號中,如果採用/*或//分隔一個字元常量或字元串字面量(string literal),它們都不會被視為注釋的開始。例如,下面語句就沒有注釋:
printf("Comments in C begin with /* or //. " );
2、預處理器僅通過檢查注釋的結束符來檢測注釋中的字元,因此,不能嵌套塊注釋。然而,可以使用/*和*/注釋包含單行注釋的源代碼:
/* 暫時注釋掉這兩行:
const double pi = 3.1415926536; // pi是一個常量
area = pi * r * r; // 計算面積
暫時注釋到此 */
㈡ c語言代碼編寫的格式
C語言 程序代碼編寫規范
(初級程序員 討論版)
前言
一個好的程序編寫規范是編寫高質量程序的保證。清晰、規范的源程序不僅僅是方便閱讀,更重要的是能夠便於檢查錯誤,提高調試效率,從而最終保證軟體的質量和可維護性。
說明
l 本文檔主要適用於剛剛開始接觸編程的初學者。
l 對於具有一定工程項目開發經驗的程序員,建議學習C語言程序代碼編寫規范—高級版。
目錄
1 代碼書寫規范
2 注釋書寫規范
3 命名規范
4 其它一些小技巧和要求
1 代碼書寫規范
1.1函數定義
花括弧: { }
每個函數的定義和說明應該從第1列開始書寫。函數名(包括參數表)和函數體的花括弧應該各佔一行。在函數體結尾的括弧後面可以加上注釋,注釋中應該包括函數名,這樣比較方便進行括弧配對檢查,也可以清晰地看出來函數是否結束。
範例1:函數的聲明
void matMyFunction(int n)
{
……
} /* matMyFunction*/
1.2空格與空行的使用
要加空格的場合
l 在逗號後面和語句中間的分號後面加空格,如:
int i, j, k;
for (i = 0; i < n; i++)
result = func(a, b, c);
l 在二目運算符的兩邊各留一個空格,如
a > b a <= b i = 0
l 關鍵字兩側,如if () …, 不要寫成if() …
l 類型與指針說明符之間一定要加空格:
char *szName;
不加空格的場合
l 在結構成員引用符號.和->左右兩加不加空格:
pStud->szName, Student.nID
l 不在行尾添加空格或Tab
l 函數名與左括弧之間不加空格:
func(…)
l 指針說明符號*與變數名間不要加空格:
int *pInt; 不要寫成: int * pInt;
l 復合運算符中間不能加空格,否則會產生語法錯誤,如:
a + = b a < = b 都是錯誤的
空行與換行
l 函數的變數說明與執行語句之間加上空行;
l 每個函數內的主要功能塊之間加空行表示區隔;
l 不要在一行中寫多條語句.
範例2:空行與換行
int main()
{
int i, j, nSum = 0; //變數說明
for (i = 0; i < 10; i++) //執行代碼
{
for (j = 0; j < 10; j++)
{
nSum += i;
}
}
}
1.3縮進的設置
根據語句間的層次關系採用縮進格式書寫程序,每進一層,往後縮進一層
有兩種縮進方式:1,使用Tab鍵;2,採用4個空格。
整個文件內部應該統一,不要混用Tab鍵和4個空格,因為不同的編輯器對Tab鍵的處理方法不同。
1.4折行的使用
· 每行的長度不要超過80個字元,當程序行太長時,應該分行書寫。
· 當需要把一個程序行的內容分成幾行寫時,操作符號應該放在行末。
· 分行時應該按照自然的邏輯關系進行,例如:不要把一個簡單的邏輯判斷寫在兩行上。
· 分行後的縮進應該按照程序的邏輯關系進行對齊。例如:參數表折行後,下面的行應該在參數表左括弧的下方。
範例2:折行的格式
dwNewShape = matAffineTransform(coords, translation,
rotation);
if (((new_shape.x > left_border) &&
(new_shape.x < right_border)) &&
((new_shape.y > bottom_border) &&
(new_shape.y < top_border)))
{
draw(new_shape);
}
1.5嵌套語句(語句塊)的格式
對於嵌套式的語句--即語句塊(如,if、while、for、switch等)應該包括在花括弧中。花括弧的左括弧應該單獨佔一行,並與關鍵字對齊。建議即使語句塊中只有一條語句,也應該使用花括弧包括,這樣可以使程序結構更清晰,也可以避免出錯。建議對比較長的塊,在末尾的花括弧後加上注釋以表明該語言塊結束。
範例3:嵌套語句格式
if (value < max)
{
if (value != 0)
{
func(value);
}
}
} else {
error("The value is too big.");
} /* if (value < max) */
2 注釋書寫規范
注釋必須做到清晰,准確地描述內容。對於程序中復雜的部分必須有注釋加以說明。注釋量要適中,過多或過少都易導致閱讀困難。
2.1注釋風格
· C語言中使用一組(/* … */)作為注釋界定符。
· 注釋內容盡量用英語方式表述。
· 注釋的基本樣式參考範例4。
· 注釋應該出現在要說明的內容之前,而不應該出現在其後。
· 除了說明變數的用途和語言塊末尾使用的注釋,盡量不使用行末的注釋方式。
範例4:幾種注釋樣式
/*
* ************************************************
* 強調注釋
* ************************************************
*/
/*
* 塊注釋
*/
/* 單行注釋 */
//單行注釋
int i; /*行末注釋*/
2.2何時需要注釋
· 如果變數的名字不能完全說明其用途,應該使用注釋加以說明。
· 如果為了提高性能而使某些代碼變得難懂,應該使用注釋加以說明。
· 對於一個比較長的程序段落,應該加註釋予以說明。如果設計文檔中有流程圖,則程序中對應的位置應該加註釋予以說明。
· 如果程序中使用了某個復雜的演算法,建議註明其出處。
· 如果在調試中發現某段落容易出現錯誤,應該註明。
3 命名規范
3.1常量、變數命名
l 符號常量的命名用大寫字母表示。如:
#define LENGTH 10
l 如果符號常量由多個單詞構成,兩個不同的單詞之間可以用下劃線連接。如:
#define MAX_LEN 50
變數命名的基本原則:
l 可以選擇有意義的英文(小寫字母)組成變數名,使人看到該變數就能大致清楚其含義。
l 不要使用人名、地名和漢語拼音。
l 如果使用縮寫,應該使用那些約定俗成的,而不是自己編造的。
l 多個單片語成的變數名,除第一個單詞外的其他單詞首字母應該大寫。如:
dwUserInputValue。
3.2函數命名
函數命名原則與變數命名原則基本相同。對於初學者,函數命名可以採用「FunctionName」的形式。
4 其它一些小技巧和要求
l 函數一般情況下應該少於100行
l 函數定義一定要包含返回類型,沒有返回類型加void
l 寫比較表達式時,將常量放在左邊
10 == n
NULL != pInt
l 指針變數總是要初始或重置為NULL
l 使用{}包含復合語句,即使是只有一行,如:
if (1 == a)
{
x = 5;
}
http://home.ustc.e.cn/~danewang/c/CodingStandards.html
㈢ c語言指針書寫規范
這兩種都是正確的寫法。
個人建議將*寫在空格的後面,即緊挨著變數名,像這樣:
int *p;
int **pp;
因為如果寫成int* p;會給人一種錯覺,以為p的類型是int*,所以會以為int* p1,p2;是定義了兩個指針變數,而實際上p2是一個整型變數,p1才是指針變數。
㈣ c語言編寫程序時的注意事項
在進行C語言編寫程序時,需要注意以下幾點:
1. 編寫規范:要遵守C語言的編程規范,如變數命名規范、縮進、注釋等。編寫規范的代碼易於維護和理解,且可以提高代碼質量。
2. 內存管理:C語言中需要手動管理內存,包括內存分配、釋放等。要注意內存泄漏和指針錯誤等問題,避免程序崩潰或數據臘運損壞等情況。
3. 安全性輪旅梁:C語言對數據的邊界檢查並不嚴格,容易受到緩沖區溢出等安全問題的攻擊。在編寫程序時需要考慮安全性,包括輸入的數據驗證、防範攻擊等。
4. 錯誤處理:C語言中需要處理各種可能出現的錯誤,包括語法錯誤、運行時錯誤、編譯錯誤等。需要使用錯誤處理機制來處理這些錯誤,保證程序運行的穩定性和安全性。
5. 代碼復用性:C語言中可以使用函數和模塊化的方式來提高代碼的復用性。需要把相關的功能封裝成函數或模塊鎮辯,以便在程序的不同部分進行重用,提高代碼效率和可維護性。
除此之外,還需要注意代碼的可讀性和可維護性。編寫清晰易懂的代碼,遵守編程規范,注重代碼注釋,是提高代碼可讀性和可維護性的有效方法。
㈤ C語言的書寫規則主要有哪些呢
1.
1.1符號命名規則
1.1.1符號名包括模塊名、常量名、標號名、子程序名等。這些名字應該能反映它所代表的實際東西,具有一定的意義,使其能夠見名知義,有助於對程序功能的理解。命名採用匈牙利命名法。規則如下:
(1)所有宏定義、枚舉常數和const變數,用大寫字母命名。在復合詞里用下劃線隔開每個詞。
(2)復合詞中每個單詞的第一個字母大寫。除了規則5.1.1.1以外,避免使用下劃線。
(3)類、類型定義和枚舉型名的第一個字母大寫。
(4)函數名是復合詞的,第一個詞採用全部小寫,隨後每個單詞採用第一個字母大寫,其它字母小寫方式;如果是單個詞的,採用全部小寫方式。
(5)循環變數可採用i, j, k等,不受上述規則限制。
(6) 類的成員變數應採用m_開頭。
(7) 全局變數詞頭為g_ 。
(8) 臨時變數詞頭為tmp_ 。
(9) 對結構體內的變數命名, 遵循變數的具體含義命名原則
(10)用小寫字母的前綴表示變數的類型,前綴的下一個字母用大寫。
表 1
詞頭 類型 詞頭 類型
ch char l long
i integer u unsigned
b boolean p pointer
f float lp long pointer
d double s string
st structure sz ASCII string
by byte n short int
H handle x,y 分別為x,y坐標
dw DWORD fn function
表 2
詞頭 變數名 詞頭 變數名
task task sig signal
sb binary semaphores wd watchdog
sm mutual exclusion tm timer
sc counting semaphores msg message
pipe pipe
例:
#define ARRAY_SIZE 24 /*規則5.1.1.1*/
int g_iFlag;
class MyClass /*規則5.1.1.3*/
{
};
void someFunc( ) /*規則5.1.1.2和5.1.1.4*/
{
int nArray[ARRAY_SIZE];
unsigned char uchByte;
char szName[ ];
char *pszName = szName;
}
(11)有些詞頭(如p和u)可以和其它詞頭組合。
例:WDOG_ID wdId;
WDOG_ID g_wdId; /*全局watchdog Id,故以g_開頭*/
1.1.2名字的長度一般不要過長或過短。過長的名字會增加工作量,使程序邏輯流程變得模糊;過短的名字無法表達符號的實際意義。約定長度范圍:3-31;
1.2數據和函數說明
1.2.1數據說明次序應當規范化,使數據屬性容易查找,也有利於測試、排錯和維護。說明的先後次序應固定,應按邏輯功能排序,邏輯功能塊內建議採用下列順序:整型說明、實型說明、字元說明、邏輯量說明。
1.2.2如果設計了一個復雜的數據結構,應當通過注釋對其變數的含義、用途進行說明。
1.2.3在函數的聲明中使用異常聲明。
如:void f() throw(toobig, toosmall, divzero);
在聲明一個函數時,將它所拋出的異常列出,便於函數的使用者了解可能會發生哪些異常。
1.3 程序注釋
1.3.1程序注釋是程序員與日後的程序讀者之間通信的重要手段之一,注釋分為文件注釋、函數注釋和功能注釋。
1.3.2正規程序的注釋應注意:
——注釋行的數量佔到整個源程序的1/3到1/2。
1.3.3文件注釋位於整個源程序的最開始部分,注釋後空兩行開始程序正文。它包括:
——程序標題。
——目的、功能說明。
——文件作者、最後修改日期等說明。
例:
./********************************************************************
(空一行)
標題: Demo.c
功能: 測試VxWorks的各種系統調用.
說明:
該程序測試各種VxWorks的系統調用函數。包括任務(taks)的創建、掛起及任務間通過信號燈實現同步,通過消息隊列 進行通訊。
程序創建了兩個任務:一個高優先順序的任務和一個低優先順序的任務。兩個任務間通過一個二進制的信號燈進行同步,通過消息隊列進行通訊。
當前版本: x.x
修改信息: 2000.06.05 John, Initial Version
2000.07.05 Tom, Bug xxxx fixed
**************************************************************/
(空2行,開始程序正文)
1.3.4 函數注釋通常置於每函數或過程的開頭部分,它應當給出函數或過程的整體說明對於理解程序本身具有引導作用。一般包括如下條目:
——模塊標題。
——有關本模塊功能和目的的說明。
——調用格式
——介面說明:包括輸入、輸出、返回值、異常。
——演算法。如果模塊中採用了一些復雜的演算法。
例:
file://(/注釋開頭應和上一函數空兩行)
(注釋開頭與上一函數最後一行間隔兩行)
/********************************************************************
標題:assignmentComplete
功能:BSC=>MSC消息生成函數,生成assignment_complete指配完成消息(BSMAP消息) .
格式:
int assignmentComplete(int iCellId, int iServiceChannnelNum, char *pszMSGData) throw(exception1, exception2)
輸入:
int iCellId: MS所在的小區識別
iCellId取值:0x00-——0xff
int iServiceChannnelNum:MS所佔的業務信道號碼
輸出:
char * pszMSGData:指配完成消息數據
返回值: 0x00正常
異常:exception1異常情況1, exception2異常情況2
********************************************************************/
( 注釋後直接開始程序正文,不空行。)
1.3.5功能性注釋嵌在源程序體中,用於描述其後的語句或程序段做什麼工作,也就是解釋下面要做什麼,或是執行了下面的語句會怎麼樣。而不要解釋下面怎麼做,因為解釋怎麼做常常與程序本身是重復的。
例:
/*把 amount 加到 total中*/
total = amount + total;
這樣的注釋僅僅是重復了下面的程序,對於理解它的工作並沒有什麼作用。而下面的注釋,有助於讀者理解。
/*將每月的銷售額amount加到年銷售額total中*/
total = amount + total;
1.4 函數編寫應盡可能短小精悍,一般不超過兩屏,以便於調試和理解。
1.5語句結構
為保證語句結構的清晰和程序的可讀性,在編寫軟體程序時應注意以下幾個方面的問題:
——在一行內只寫一條語句,並採用空格、空行和移行保證清楚的視覺效果。
——每一個嵌套的函數塊,使用一個TAB縮進(可以設定為4個空格),大括弧必須放在條件語句的下一行,單獨成一行,便於匹對:
如,有一段程序如下:
for(i=1;i<n-1;i++){ t=1; for(j=i+1;j<n;j++){
if(a[j]<a[t] ) t=j; if(t!=i ){work=a[t];a[t]=a[I];a[I]=work;}}}
應寫為
for( i=1; i<n-1; i++)
{
t=1;
for(j = i+1; j<n; j++)
{
if(a[i]<a[j])
t=j;
if(t!=1)
{ .5.
Q/ECC/BJ 010—2001
work=a[t];
a[t]=a[i];
a[i]=work;
}
}
}
——文件之中不得存在無規則的空行,比如說連續十個空行。
一般來講函數與函數之間的空行為2-3行;
在函數體內部,在邏輯上獨立的兩個函數塊可適當空行,一般為1-2行。
——程序編寫首先應考慮清晰性,不要刻意追求技巧性而使得程序難以理解。
——每行長度盡量避免超過屏幕寬度,應不超過80個字元。
——除非對效率有特殊要求,編寫程序要作到清晰第一,效率第二。
——盡可能使用函數庫。
——盡量用公共過程或子程序去代替重復的功能代碼段。要注意,這個代碼應具有一個獨立的功能,不要只因代碼形式一樣便將其抽出組成一個公共過程或子程序。
——使用括弧清晰地表達算術表達式和邏輯表達式的運算順序。如將 x=a*b/c*d 寫成 x=(a*b/c)*d可避免閱讀者誤解為x=(a*b)/(c*d)。
——避免不必要的轉移。
——避免採用過於復雜的條件測試。
——避免過多的循環嵌套和條件嵌套。
——建議不要使用 *=,^=, /=等運算符。
——一個函數不要超過200行。一個文件應避免超過2000行。
——盡量避免使用go to語句。
——避免採用多賦值語句,如x = y = z ;
——不鼓勵採用?:操作符,如z = (a>b)?a:b;
——不要使用空的if else 語句。如
if(cMychar >= 『A』)
if(cMychar <= 『Z』)
printf(「This is a letter \n」);
else
printf(「This is not a letter \n」);
else到底是否定哪個if容易引起誤解。可通過加{}避免誤解。
——盡量減少使用「否定」條件的條件語句。如:
把 if( !( (cMychar<』0』) || (cMychar>』9』) ) )
改為if( (cMychar>=』0』) && (cMychar<=』9』)
㈥ C語言編寫規范有哪些
啊哦
這個很多啊 呵呵
在程序編譯方面沒有什麼約定 ,
在程序的排版方面,可以約定一些標准, 比如:
1 程序塊要採用縮進風格編寫,縮進的空格數為4個
2 對齊只使用空格鍵,不使用TAB鍵。
3 逗號、分號只在後面加空格。
int a, b, c;
4 比較操作符, 賦值操作符"="、 "+=",算術操作符"+"、"%",邏輯操作符"&&"、"&",位域操作符"<<"、"^"等雙目操作符的前後加空格 。
5 "!"、"~"、"++"、"--"、"&"(地址運算符)等單目操作符前後不加空格。
6 "->"、"."前後不加空格。
p->id = pid; // "->"指針前後不加空格
7 if、for、while、switch等與後面的括弧間應加空格,使if等關鍵字更為突出、明顯。
if (a >= b && c > d)
空格多數情況是作為詞法分析的分隔,多餘的空格一般是無關緊要(字元串除外),在語法分析之前已被刪除。
經典的關於空格的例子是:
int a=4;
int* p=&a;
int result=16/ *p; ( 此處必須在*p前加空格,否則在詞法分析時被解釋為注釋開始/* )
㈦ 有誰知道C語言程序的編程規范,給我概括一下,
1引言
1.1編寫目的
在軟體開發過程中,編碼的工作量是相當大的,同一項目參與編程的人可能有各自編程的經驗和習慣,不同風格的程序代碼使維護工作變得復雜和困難。為了提高代碼的可讀性、系統的穩定性及降低維護和升級的成本,特編寫本規范以統一各開發人員的編程工作。
1.2 適用對象
本規范適用於所有開發人員,包括應用程序、網頁及資料庫開發人員,及有關的程序測試人員。
1.3 引用標准
GB/T 11457 軟體工程術語
GB 8566 計算機軟體開發規范
GB 8567 計算機軟體產品開發文件編制指南
2.編寫要求
2.1一般代碼規則
可讀性原則,這是評價程序質量的首選指標,寧可不要一些技巧也要保證程序的易讀特性,不要因過分追求技巧而犧牲程序的可讀性。
功能獨立性原則。每一程序塊只完成一個獨立的功能,反過來,每一獨立的功能只在一程序塊內完成,盡量低耦合、高內聚。
提示說明應當簡短且避免產生歧義。
提示或警告信息應當具有向導性,能准確告訴用戶錯誤原因及恢復方法。提示和警告對話框應當使用標准規范。
快捷鍵的定義必須符合用戶操作習慣。
程序需要長時間處理或等待時,應當顯示進度條並提示用戶等待。
一些敏感操作,如刪除等操作在執行前必須提示用戶確認。
2.2變數、函數、過程、控制項等命名規則
2.2.1 變數命名
變數命名採用[作用范圍][數據類型][自定義名稱]規則定義,並遵循匈牙利命名法。要求看到變數名就能直觀的看出其范圍和數據類型。
匈牙利命名規則:
a Array 數組
b BOOL (int) 布爾(整數)
by Unsigned Char (Byte) 無符號字元(位元組)
c Char 字元(位元組)
cb Count of bytes 位元組數
cr Color reference value 顏色(參考)值
cx Count of x (Short) x的集合(短整數)
dw DWORD (unsigned long) 雙字(無符號長整數)
f Flags (usually multiple bit values) 標志(一般是有多位的數值)
fn Function 函數
g_ global 全局的
h Handle 句柄
i Integer 整數
l Long 長整數
lp Long pointer 長指針
m_ Data member of a class 一個類的數據成員
n Short int 短整數
p Pointer 指針
s String 字元串
sz Zero terminated String 以0結尾的字元串
tm Text metric 文本規則
u Unsigned int 無符號整數
ul Unsigned long (ULONG) 無符號長整數
w WORD (unsigned short) 無符號短整數
x,y x, y coordinates (short) 坐標值/短整數
v void 空
作用范圍:
范圍 前綴 例子
全局作用域 g_ g_Servers
成員變數 m_ m_pDoc
局部作用域 無 strName
數據類型
VC常用前綴列表
前綴 類型 描述 例子
ch char 8位字元 chGrade
ch TCHAR 16位UNICODE類型字元 chName
b BOOL 布爾變數 bEnabled
n int 整型(其大小由操作系統決定) nLength
n UINT 無符號整型(其大小由操作系統決定) nLength
w WORD 16位無符號整型 wPos
l LONG 32位有符號整型 lOffset
dw DWORD 32位無符號整型 dwRange
p * 內存模塊指針,指針變數 pDoc
l p FAR* 長指針 lpDoc
lpsz LPSTR 32位字元串指針 lpszName
lpsz LPCSTR 32位常量字元串指針 lpszName
lpsz LPCTSTR 32位UNICODE類型常量指針 lpszName
h handle Windows對象句柄 hWnd
lpfn (*fn)() 回調函數指針 Callback Far pointer to
CALLBACK function lpfnAbort
2.2.2 函數、過程命名
函數或過程名的主體應該使用大小寫混合形式,並且應該足夠長以描述它的作用。而且,函數名應該以一個動詞起首,如 InitNameArray 或 CloseDialog。對於頻繁使用的或長的項,推薦使用標准縮略語以使名稱的長度合理化。一般來說,超過 32 個字元的變數名在 VGA 顯示器上讀起來就困難了。當使用縮略語時,要確保它們在整個應用程序中的一致性。在一個工程中,如果一會兒使用 Cnt, 一會兒使用 Count,將導致不必要的混淆。
對於自行編寫的函數,若是系統關鍵函數,則須在函數實現部分的上方標明該函數的信息,格式如下:
//======================================================
// 函 數 名:InsureHasOutputInfo
// 功能描述:確保有適當的輸出信息
// 輸入參數:nProctID:相應的產品ID
// 輸出參數:void
// 創建日期:00-2-21
// 修改日期:00-2-21
// 作 者:***
// 附加說明:
//======================================================
2.2.3 用戶定義類型
在一項有許多用戶定義類型的大工程中,常常有必要給每種類型一個它自己的三個字元的前綴。如果這些前綴是以 "u" 開始的,那麼當用一個用戶定義類型來工作時,快速識別這些類型是很容易的。例如,ucli 可以被用來作為一個用戶定義的客戶類型變數的前綴。
註:對於非通用的變數,請在定義時加以注釋說明,變數定義盡可能放在最開始處。
2.2.4 控制項命名
應該用一致的前綴來命名對象,使人們容易識別對象的類型。
VC常用宏定義命名列表
前綴 符號類型 符號例子 范圍
IDR_ 標識多個資源共享的類型 IDR_MAINFRAME 1~0x6FFF
IDD_ 對話框資源(Dialog) IDD_SPELL_CHECK 1~ 0x6FFF
HIDD_ 基於對話框的上下文幫助 HIDD_SPELL_CHECK 0x20001~0x26FF
IDB_ 點陣圖資源(Bitmap) IDB_COMPANY_LOGO 1~0x6FFF
IDC_ 游標資源(Cursor) IDC_PENCIL 1~0x6FFF
IDI_ 圖標資源(Icon) IDI_NOTEPAD 1~0x6FFF
ID_、IDM_ 工具欄或菜單欄的命令項 ID_TOOLS_SPELLING 0x8000~0xDFFF
HID_ 命令上下文幫助 HID_TOOLS_SPELLING 0x18000~0x1DFFF
IDP_ 消息框提示文字資源 IDP_INVALID_PARTNO 8~0xDFFF
HIDP_ 消息框上下文幫助 HIDP_INVALID_PARTNO 0x30008~0x3DFFF
IDS_ 字元串資源(String) IDS_COPYRIGHT 1~0x7FFF
IDC_ 對話框內的控制資源 IDC_RECALC 8~0xDFFF
2.3源代碼規則
2.3.1風格約定:採用縮進的格式保存程序的層次結構。要求能直觀的看出循環、判斷等層次結構。
每一個嵌套的函數塊,使用一個TAB縮進(可以設定為4個空格),大括弧必須放在條件語句的下一行,單獨成一行,便於匹對反大括弧應該在單獨的一行,在大多數情況下反擴號應有注釋內容。舉例如下:
if(condition1)
{
while(condition2)
{
…..
…..
}//end while(condition2)
}//end if (condition1)
或者
if(condition1){
while(condition2){
….
….
}//end while(condition2)
}//end if(conditionl)
2.3.2在操作符的前後必須使用空格。
2.3.3在分隔數組下標和函數參數的逗號後面必須添上空格。
2.3.4嚴禁使用go to 語句。
2.3.5對資料庫操作只能使用標准SQL語句,關鍵字必須使用大寫(如SELECT、WHERE等),數據元素(表、欄位、視圖等)必須按照數據字典書寫。
2.3.6程序代碼中要有足夠的容錯處理功能。
對可能發生的異常統一採用C++拋出格式:
try
{
//可能引發異常的代碼
throw t; //手工拋出異常
}
catch(type_1 e) // type_1為類型定義符、如int、CException、_com_error
{
// type_1類型異常處理
}
catch(type_2 e)
{
// type_2類型異常處理
}
2.3.7程序代碼結構必須層次清楚,適當使用空行分段。
2.3.8工程的版本控制要嚴格,版本格式為.me.ae.yy.mmdd,其中:[me]表示主版本號;[ae]表示輔版本號;[yy.mmdd]表示版本建立日期。高版本盡量兼容低版本的用法、數據或協議。
2.4文件的命名規則
2.4.1根據系統設計所規定的結構,建立相應的文件夾,根據需要建立子文件夾。
2.4.2文件夾和文件的名稱應盡量能夠表達其意義,盡量使用英文命名,絕對不能漢字。
2.4.3文件名稱一般採用「xxx_yyy.ext」格式,xxx(3-4個字母)表示分類,yyy(字母數自定)表示操作 (如 「 /example/exp_edit.htm 」)
\
我從公司文檔拷貝的!你自己看看對你有沒有用!
㈧ c語言基本語法
c語言基本語法
1 C語言的程序構成方式
1)c語言程序由函數構成,每個函數可以實現一個或多個功能。
2)一個正規程序可以有多個函數,但是有且只有一個主函數。
3)函數只有在被調用的時候才執行,主函數由系統調用執行。
4)函數的格式必須按照規范書寫。
5)C 語言程序文件的後綴為 .c
其他關鍵字:const sizeof typedel volatile(4)
5、注釋
對代碼的解釋性文字。
作用:方便程序員之間交流。
特點:不參與編譯。
注釋分類
1)單行分類(//注釋內容)。只注釋單行
2)多行分類(/* 注釋內容*/)。注釋多行,注釋文字間可以換行。快捷鍵(command + ?)
㈨ c語言中,標准main函數的書寫規范是什麼
在最新的 C99 標准中,只有以下兩種定義方式是正確的:
int main( void ) /* 無參數形式 */
{
...
return 0;
}
int main( int argc, char *argv[] ) /* 帶參數形式 */
{
...
return 0;
}
int指明了main()函數的返回類型,函數名後面的圓括弧一般包含傳遞給函數的信息。void表示沒有給函數傳遞參數。關於帶參數的形式,我們等會討論。
瀏覽老版本的C代碼,將會發現程序常常以。
main()
這種形式開始。C90標准允許這種形式,但是C99標准不允許。因此即使你當前的編譯器允許,也不要這么寫。
你還可能看到過另一種形式。
void main()
有些編譯器允許這種形式,但是還沒有任何標准考慮接受它。C++ 之父 Bjarne Stroustrup 在他的主頁上的 FAQ 中明確地表示:void main( ) 的定義從來就不存在於 C++ 或者 C 。所以,編譯器不必接受這種形式,並且很多編譯器也不允許這么寫。