関数・変数などのネーミング基本ルール

カテゴリ

iris SDK の関数はその分野に応じてカテゴリとよばれる分類がされておりネーミングでもそれがわかるように配慮されています.

メインプロセッサ側のカテゴリ
アルファベットの大文字が2つ以上続いたもの(グラフィクスのみ数字も併用)
[A-Z][A-Z0-9]+
OS OS システムに関するもの
G2,G3,GX... グラフィクスに関するもの(例外的に数字が含まれる)
MI DMA などメモリのやり取りに関するもの
SVC システムコールに関するもの
サブプロセッサ側のカテゴリ
先頭文字がアルファベットの大文字でそれ以降小文字が1文字以上続く(数字は原則禁止)
[A-Z][a-z]+
Os OS システムに関するもの
Mi DMA などメモリのやり取りに関するもの
Svc システムコールに関するもの

(03/11/13)

関数

関数のネーミングは以下のようになっています.[動詞] や[目的語] は単語毎に先頭一文字を大文字にしてアンダースコアなしに連結します.

公開関数(API)
[カテゴリ名] _ [動詞] [目的語など]
例 OS_SetInterruptMask, OS_IsLocked
非公開関数
[カテゴリ名] i_ [動詞] [目的語など]
例 OSi_SetInterruptMaskBase
static 関数
自由に

ただし慣習としてこのルールに則さないものも一部あります.(OS_InterruptHandler とか)

(03/11/13)

変数型名

typedef でのネーミングは基本的にはGAMECUBEを踏襲しているので関数と形態が同じになっています.カテゴリ名の後が[動詞]ではないということなどで見分ける必要があります.

変数型名
[カテゴリ名] _ [名詞]
例 OS_InterruptCallback
変数名(例外)
[カテゴリ名] _ [動詞] Mode
例 OS_CopyMode

例外としてAPI の動作そのもののコントロールをするための型として上記のような OS_CopyModeという形のものもあります.この場合 GX_Copy というような関数の動作のコントロールに使用されるのでしょう.同じようなものに GX_CopyStatues, GX_CopyType というのも考えられます.このような場合にはこの形式は自然なネーミングなので認められていますがあまり濫用しないように注意してください.

(03/11/13)

列挙名・マクロ名

enum, define, const で定義される定数は以下のような形式となります.

定数名
[カテゴリ名] _ [A-Z0-9_]+
例 OS_INTERRUPT_MAX, Os_INTERRUPT_MAX

サブプロセッサの場合、カテゴリ名にアルファベットの小文字が含まれていますので注意してください.

(03/11/13)