web-dev-qa-db-ja.com

定数のkプレフィックスはどこから来ていますか?

定数の前にkを付けるのはかなり一般的な方法です(例:k_pi)。しかし、kはどういう意味ですか?

cがすでにcharを意味しているというだけですか?

32
Johan Kotlinski

あまり見たことがありませんが、特定の言語(特にゲルマン語)の単語のスペル定数--- 定数

22
misiu_mp

これは歴史的な奇妙なことであり、理解できないコーディング標準を盲目的に適用することを好むチームの間では今でも一般的な慣習です。

ずっと前に、ほとんどの商用プログラミング言語は弱く型付けされていました。私たちが今当たり前と思っている自動型チェックは、まだほとんど学術的なトピックでした。これは、カテゴリエラーのあるコードを簡単に記述できることを意味しました。コンパイルして実行しますが、診断が難しい方法で失敗します。これらのエラーを減らすために、Simonyiと呼ばれる章では、各変数名をその(概念的な)タイプを示すタグで始めて、誤用されたときに簡単に見つけられるようにすることを提案しました。彼はハンガリー人だったので、その慣習は「ハンガリー記法」として知られるようになりました。

しばらくして、型付き言語(特にC)の人気が高まるにつれ、これは良い考えだと聞いた馬鹿もいましたが、その目的を理解していませんでした。彼らは、宣言された型を示すために、各変数に冗長タグを追加することを提案しました。それらの唯一の用途は、変数の型を簡単にチェックできるようにすることです。誰かがタイプを変更してタグの更新を忘れた場合を除いて、その場合、それらは積極的に有害です。

2番目の(役に立たない)形式は、説明と実施が簡単だったため、多くの多くのチームによって盲目的に採用されました。数十年経った今でも、それが時々使用され、提唱されているのを目にします。

「c」はタイプ「char」のタグであったため、「const」にも使用できませんでした。そのため、「k」が選択されました。これは、ドイツ語で「konstant」の最初の文字であり、数学の定数に広く使用されているためです。

70
Mike Seymour

数学的慣習が先例だったと思います。 kは、数学では常に定数として使用されます。

4
sheepez

ハンガリアン記法は使用しないでください。定数を目立たせたい場合は、すべて大文字にします。

補足として、Googleコーディング標準には、(コードの可読性の観点から)不適切な慣行がたくさんあります。これは、委員会によってコーディング標準を設計するときに起こることです。

4
Zac Howland

これは、値が一定であることを意味します。

2
awm

それはおそらく数学からの慣習です。しかし、定数に関する他の提案もあります。たとえば、KernighanとRitchieの著書「TheC language」では、定数の名前を大文字で書くことを提案しています(例:#define MAX55)。

0
BlackBear

Kは、定数の言葉遊びであるkonstantの略です。コーディングスタイルに関連しています。

それは好みの問題であり、一部の人々やプロジェクトはそれらを使用しています。つまり、ハンガリアン記法も採用していますが、多くは採用していません。それはそれほど重要ではありません。

接頭辞またはスタイルが何を意味するのかわからない場合は、プロジェクトにコーディングスタイルの参照があるかどうかを常に確認し、それを読んでください。

0
Shinnok