您所在位置:首頁 > 新聞資(zī)訊 > 軟件開(kāi)發,編程規範要知(zhī)道
軟件開(kāi)發,編程規範要知(zhī)道
發布日期: 2022-08-30
軟件開(kāi)發編程規範之頭文件的六大(dà)編程規範詳解
今天來爲大(dà)家分(fēn)享一(yī)下(xià)軟件開(kāi)發過程中(zhōng)常常使用的編程規範,當然,隻是一(yī)些工(gōng)作中(zhōng)的建議,大(dà)家還要結合自己的項目實際需求進行相關的設計與開(kāi)發哦,如果大(dà)家在開(kāi)發中(zhōng)有相關的建議的話(huà),也可以給出合理的建議!
1 頭文件編程規範詳解
1.1 頭文件的名稱命名規範
首先,我(wǒ)(wǒ)們要注意的是,頭文件的名稱,一(yī)般我(wǒ)(wǒ)們采用的是英文版的小(xiǎo)寫字母格式,其次就是,頭文件的格式,建議大(dà)家根據項目進行設定,如子系統的名稱_文件的名稱.h,采用這種格式進行命名。
這樣大(dà)家在讀到你的頭文件的時候,就知(zhī)道是什麽含義了。
1.2 頭文件的編譯開(kāi)關
我(wǒ)(wǒ)們經常會使用相同的頭文件,但是,如果多次進行重複包含的話(huà),程序在編譯過程中(zhōng)就會失敗,所以,我(wǒ)(wǒ)們在定義頭文件的時候,一(yī)定要使用
#ifndef 預編譯開(kāi)關
#define 預編譯開(kāi)關
這個格式,否則會出現相關的編譯錯誤的,那麽到底什麽是預編譯開(kāi)關呢?其實預編譯開(kāi)關就是在我(wǒ)(wǒ)們的頭文件的名稱的大(dà)寫格式前面加下(xià)劃線,如我(wǒ)(wǒ)們的頭文件爲ipf_protocol.h,那麽我(wǒ)(wǒ)們使用如下(xià)宏定義即可:
#ifndef _IPF_PROTOCOL_H
#define _IPF_PROTOCOL_H
下(xià)面就可以加我(wǒ)(wǒ)們想要在頭文件中(zhōng)定義的内容了,這是在使用C或者C++語言時,定義頭文件必不可少的環節,大(dà)家千萬要注意。
下(xià)面我(wǒ)(wǒ)們給出一(yī)個完整的例子,大(dà)家根據自己的需求進行填空即可哈。
#ifndef _TLC_ONEDAY_H
#define _TLC_ONEDAY_H
……
頭文件正文
……
#endif
1.3 禁止頭文件的交叉引用
我(wǒ)(wǒ)們在定義頭文件的時候,一(yī)定要爲頭文件的層次設置爲公共模塊,私有模塊,頭文件的引用次序爲下(xià)層頭文件引用上層的頭文件,私有文件引用公共的頭文件。
而且,我(wǒ)(wǒ)們在聲明結構的時候,一(yī)定要格外(wài)注意,千萬不能出現交叉引用的情況。
下(xià)面咱們給出具體(tǐ)的實例,以便大(dà)家能夠清晰認識這個錯誤:
頭文件 isdn_a.h
#ifndef _ISDN_A_H
#define _ISDN_A_H
#include “isdn_b.h”
typedef struct
{
...;
ISDN_ConTROL stIsdnControl;
...;
}ISDN_ CONFIG;
#endif
頭文件 isdn_b.h
/************************************************************
Description: 定義控制數據結構
#ifndef _ISDN_B_H
#define _ISDN_B_H
#include “isdn_a.h”
typedef struct
{
...;
ISDN_ConFIG stIsdnConfig;
...;
}ISDN_CONTROL;
#endif
爲了解決上述矛盾,可以将兩個結構合并到一(yī)個文件中(zhōng)聲明。
1.4 引用頭文件時使用的" "和< >
如果引用系統頭文件,必須使用“< “和“> “;如果引用自定義的頭文件,必須使用“” “和“”
PS:所謂的系統頭文件指的就是編譯系統提供的頭文件;
1.5 禁止在頭文件中(zhōng)定義變量
一(yī)般來說,我(wǒ)(wǒ)們隻能在頭文件中(zhōng)聲明變量的類型,不能定義變量,這是開(kāi)發老手們都默認的規則,新手千萬要注意。
1.6 禁止無順序地聲明頭文件
頭文件的聲明順序一(yī)般是宏、結構、函數、變量。函數在頭文件中(zhōng)聲明時開(kāi)頭可以不加“extern”;
軟件開(kāi)發中(zhōng),一(yī)般都是多人維護,如果大(dà)家連基本的準則規範都沒有做到一(yī)緻的話(huà),後續進行更深層次的交流是非常耗時的,希望大(dà)家能夠嚴格遵守上述使用和定義規則吧,當然還有其它的規範,如源文件,變量定義等等相關的規範内容;
時間關系,就先爲大(dà)家分(fēn)享到這裏了,我(wǒ)(wǒ)們後續再進行更深入的分(fēn)享吧