いくつかの一般的なプログラム命名規則

関数と変数に正しくそして鮮やかに名前を付けることは、プログラムの読みやすさを向上させるだけでなく、プログラマーのプログラミングスタイルを反映することもできます。適切な命名規則は、プログラムの保守性を効果的に向上させることができます。以下では、一般的に使用されるいくつかの変数命名規則を紹介します。

ハンガリー語の命名法

MicrosoftWindowsなどの環境で広く使用されています。

この命名手法は、有能なMicrosoftプログラマーであるCharles Simonyi(Charles Simonyi)によって提案されました。ハンガリー語の命名法は、変数名の前に小文字の対応する記号を付けることにより、変数のスコープ、タイプなどを識別します。これらのシンボルは同時に使用できます。順序は、m_(メンバー変数)、ポインター、単純なデータ型、その他の順です。次に例を示します。m_lpszStrは、0文字で終わる文字列を指す長いポインタメンバー変数を意味します。

ハンガリーの命名法の鍵は次のとおりです:識別子の名前は接頭辞として1つ以上の小文字で始まります;接頭辞の後に単語または単語の組み合わせで最初の文字が大文字になり、単語は目的を示す必要があります変数の。

例:bEnable、nLength、hWnd。

ハンガリー語の命名法で一般的に使用される小文字の接頭辞:

前缀	类型	描述
a	Array	数组
b	BOOL	布尔
by	BYTE	无符号字符
c	char	字符
cb	Count of bytes	字节数
cr	Color reference value	颜色值
cx,cy	Count of x,y(short)	长度
dw	DWORD	双字(无符号长整形)
f	Flags	标志
fn	Function	函数
g_	Global	全局的
h	HANDLE	句柄
i	Integer(int)	整数
l	Long(long)	长整数
lp	Long point	长指针
m_	Data member of a class	类的数据成员
n	Short(short)	短整型
np	Near point	短指针
p	Point	指针
s	String	字符串
sz	Zero terminated string	以0结尾的字符串
tm	Text metric	文本规则
u	Unsigned int	无符号整数
ul	Unsigned long(ULONG)	无符号长整数
w	WORD	无符号短整数
x,y	x,y coordinates(short)	坐标
v	Void	空

プロジェクトに関連するグローバル変数はg_で始まり、クラスメンバー変数はm_を使用します。

前缀	类型	例子
C	类	CDocument, CPrintInfo
m_	成员变量	m_pDoc, m_nCustomers
g_	全局变量	g_Servers

こぶの命名法

近年、ますます人気が高まっています。

キャメルケースの命名法は、その名前が示すように、大文字と小文字を組み合わせて識別子を形成する名前を指します。最初の単語の最初の文字は小文字で、残りの単語の最初の文字は大文字です。

例えば:

printEmployeePaychecks();

関数名の各論理ブレークポイントは大文字でマークされています。

パスカルの命名法

こぶの命名法に似ています。

キャメルケースの命名法が最初の単語の最初の文字を小文字にしているのに対し、パスカルの命名法は最初の単語の最初の文字です。したがって、この命名法は「大きなこぶの命名法とも呼ばれます。

例えば:
DisplayInfo();
UserName

どちらもパスカルの命名法を使用しています。C#では、パスカルの命名法とラクダの命名法が主に使用されます。実際、多くのプログラマーは、実際に名前を付けるときにCamelCaseの命名法をPascalと組み合わせて使用​​します。たとえば、変数名はCamelCaseの命名法を使用し、関数はPascalの命名法を使用します。

アンダースコアの命名法

アンダースコア方式は、C言語の登場とともに普及し、UNIX / LIUNXなどの環境やGNUコードで非常に一般的です。

関数の命名

関数名は、アンダースコアを使用して小文字で区切って名前が付けられます。devicename_operation name();

操作名は通常、述語(デバイス名は操作が属するオブジェクトまたはモジュールとして使用されます)または述語+オブジェクト/述語(デバイス名は操作が属するサブジェクトまたはモジュールとして使用されます)を採用します。など、次のようになります。
tic_init();
adc_is_busy();
uart_tx_char();

割り込み関数は、次のようにデバイス名_isr()の形式で直接名前が付けられます。
timer2_isr();

変数の命名

変数には、アンダースコアを使用して小文字を区切る名前も付けられています。名前は正確で、あいまいさを引き起こさず、適度な長さである必要があります。といった:
int length;
uint32 test_offset;

i、j、kなどの1文字の名前も一般的に使用されます。これらは通常、関数のローカル変数として使用されます。tmpは、一時変数名としてよく使用されます。
ローカル静的変数は、次のようにs_プレフィックス(静的の場合)を付けて追加する必要があります。
static int s_lastw;

グローバル変数(特に外部アクセス用のグローバル変数)には、次のようなg_プレフィックス(グローバル用)を追加する必要があります。
void (* g_capture_hook)(void);

定数とマクロの命名

アンダースコアを使用して、名前の大文字を区切ります。通常、
モジュール間で名前が重複ないように、デバイス名をプレフィックスとして使用する必要があります。といった:
#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

もちろん、インターフェースと見なされるマクロは、関数の命名方法に従って名前を付けることができます。次に例を示します。
#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)

総括する

調査によると、すべてのプログラマーが承認できる命名規則はなく、プログラミング教科書は一般的に命名規則を指定していません。命名規則は、ソフトウェア製品の成功または失敗の問題ではありません。世界で最高の命名規則を発明しようとすることにあまり力を注ぐべきではありません。代わりに、ほとんどのプロジェクトメンバーを満足させる命名規則を開発する必要があります。事業。

おすすめ

転載: blog.csdn.net/xp178171640/article/details/106662069