CおよびC ++プログラムで型をマークするにはどうすればよいですか?


12

では私のこの答え、私が使用し_t最高の状態で、物議を終了タイプ、の終わりに。これが現在のプロジェクトで使用しているプラ​​クティスです。

typedef struct {
    int x;
    int y;
} point_t;

これはstddef.hsize_tまたはのようなCタイプと一致するように意図されていましたptrdiff_t。しかし、私の質問の特定のコメントによると、_tpostfixはPOSIXのために予約されているようです。代わりに何を使うべき_tですか?または、_tとにかく使用し続ける必要がありますか?

この質問は、CとC ++の両方を対象としています。これらの言語の表記規則が異なる場合は、お気軽にお答えください。


2
一般的な規則の1つは、LookLikeThisというクラス名を持つことです。その時点では、接尾辞も必要ありません。(これはJava、.netなどではより一般的ですが、C ++でも機能します。)
cHao 14年

1
最終的に、これはハンガリー記法の形式です。そして、その議論は無限です。私は今、それに反対し、cHaoの解決策を採用しています。どうして?私はすべてにハンガリー記法を約4年間使用していたので、それを使わずにプロジェクトを行うことにし、それを見逃しませんでした。そして、それに時間を無駄にしませんでした。だから、私にとってはまったく価値がなかったので、私はそれを完全に落としました。そして、私は決して振り返ることはありませんでした。
stijn 14年

1
予約済みの識別子(を含む_t) については、この質問を参照してくださいstackoverflow.com/a/228797/14065
マーティンヨーク14年

回答:


16

命名タイプに関して、CおよびC ++コミュニティ内でコンセンサスはありません。

が、_t接尾辞が実際にされたPOSIXで予約し、いくつかは、使用して提唱されます_t他の人が平等に断固あなたがPOSIXで重複する名前を危険にさらすことによって誘惑運命べきではないと主張する一方、同様にあなた自身のタイプのための接尾辞を。

代替命名規則は、次のようなタイプの接頭辞の使用をお勧めCまたはT


16

私は接尾辞がかなりugいので、_tなどを避けます。良い代替案は、大文字を使用して型名を開始することPointです。したがって、上記の例では。


3
そして、私はあなたが簡単にクライアントプログラムからのものであり、API何が何であるかを見つけることができるコード読み取り、標準Cの型からスタイルDIFFERENTを持っていることは素晴らしい見つける
日興

1
また、私の好きなテクニック。タイプには最初の大文字があります。他のすべての識別子はタイプではないため、簡単に見られます。
マーティンヨーク14年

私はいつもそれもかなりいように見えると思っていました。他の人が私に同意するのを見るのは良いことです。
syb0rg 14

PascalCaseはポインター型にのみ使用します(PascalCaseがクラス、つまりデータへの参照を意味するC#やJavaなどの言語のため)が、どこから来たのかわかります。
YoYoYonnY

1

あなた次第です。予約語と矛盾しない限り、あなたは行ってもいいです。ただし、あなたが会社で働いており、複数の人が同じコードベースにアクセスしている場合、あなたの習慣を知らない人にコードが届くというシナリオを考えてください。 point_tのようなものを書きます。そのため、ポイントはpoint_tよりも単純です。また、何かを追加する場合は、名前の頭文字を追加します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.