Skip to content

命名規則

Ryota Shioya edited this page Mar 24, 2022 · 2 revisions

dst/仕様/コーディング規約/命名規則.md

命名規則

型毎の規則

:TypeName | typedefの型定義は大文字と小文字を組み合わせて使用し,各単語の1文字目を大文字にする. :ClassName | クラス名は大文字と小文字を組み合わせて使用し,各単語の1文字目を大文字にする. :InterfaceNameIF | インターフェースは,基本クラス名と同じでサフィックス IF をつける :RoutineName | 関数,クラスメソッドには大文字と小文字を組み合わせて使用し,各単語の1文字目を大文字にする.

:localVariable | ローカル変数には大文字と小文字を組み合わせて使用し,先頭の単語以外の1文字目を大文字にする :m_memberValiable | メンバ変数はローカル変数と同様のルールに加え,プレフィックス m_ をつける :g_globalValiable | グローバル変数はローカル変数と同様のルールに加え,プレフィックス g_ をつける :s_globalValiable | クラス内スタティック変数はローカル変数と同様のルールに加え,プレフィックス s_ をつける :CONSTANT | 名前付き定数は全て大文字.static const で定義されたものもこれに含まれる. :PREFIX_ENUMERATED_TYPE | 列挙子については,定数と同じく大文字.ただし,先頭にデータ型を表すプレフィックスをつける

名前の付け方

  • 省略形は極力使わない
    • 長い変数名を打つのが面倒 -> IDE 使って入力支援を使え

アクセス修飾子

  • public/protected/privateの順で書くこと

命名規則の例外

プリミティブ型

以下のプリミティブ型については,全て小文字で定義している

s8, s16, s32, s64  // 符号付き整数
u8, u16, u32, u64  // 符号無し整数

STL,BOOSTの派生クラス

STL,BOOST派生クラスについては,一貫性を保つために一部クラス名が小文字となっている

ループカウンタ

ループカウンタについては,i,j,k... を使って良い

static const int CONSTANT = 1;

int g_globalVariable;

enum EnumType
{
    ET_INVALID,
    ET_DEFAULT
};

void FunctionName( int* dst, const int& src )
{
    for( int i = 0; i < 10; i++ ){
    }
}

class ClassName {
public:
    u32 GetMemberVariable() const
    {
        return m_memberVariable;
    }
    
    void SetMemberVariable(const u32 value)
    {
        m_memberVariable = value;
    }
protected:
    u32 m_memberVariable;
    Insn* m_insn;
    static int s_staticVariable;
};

その他

参照について

  • 参照は,const 参照以外は使用禁止
    • 参照が左辺に置かれた場合,参照先が書き換えられることが一目でわからないため.ポインタであればアスタリスクが入るため,一目でわかる.

例外のcatch

  • 例外はconst 参照で受けるように
    • ポインタで受ける:例外オブジェクトを誰が解放するのか不明
    • オブジェクトの値で受ける:コピーが複数回発生する
Clone this wiki locally