• ベストアンサー

コード中で、100000000などの桁数を見やすくする文法表現

コード中に10000000などと大きな桁数を記述する時に、 このままだとぱっと見で100億なのか10億なのか分かりにくいと思うのですが、 これを読みやすく記述できる文法表現もしくは定例表現みたいなの ってあるのでしょうか? あったら教えて頂きたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.5

template<int N1,int N2,int N3> inline int N() { return N1*1000*1000+N2*1000+N3; } N<10,000,000>(); とか。

minoa_
質問者

お礼

なるほどありがとうございます。

その他の回答 (6)

回答No.7

No.6 です。茶々の上に、嘘を書いていました。 n = 10,000,000; で、n は、10 になります。 演算子の優先順位の関係で (n = 10) , 000, 000; と認識されるので。 また、, が演算子なので、 n = 10,099,099; はアウトです。(099 が8進数と 見なされるので、「不正な8進数」 になるから)

minoa_
質問者

お礼

みなさんありがとうございました。

回答No.6

すみません、茶々に等しいのですが……。 int n; n = 10,000,000; という表記は、「文法的には」正しいです。 (エラーにはなりません) もちろん、期待したような意味にはなりませ んが。 (この場合、n は、ゼロになります) ちなみに、 int n = 10,000,000; はアウトです。 「コンマ演算子」というのがありまして。

回答No.4

場所にもよりますが、その定数の「由来」を 書くのが良いと思いますよ。式の形で。 例えば、1億にしても const n = 10000 * 10000; // 10000人×10000 レコード const n = 100 * 10000 * 100; // 100人×10000レコードが100セット よくありそうな数値で const secAll = 60 * 60 * 24 * 365; // 1年の秒数 とか。 いきなり大きな数値というのは、あまりなくて、 ソースに出てくる大きな数値は、何かの積で結果的 に大きな数値になっているケースが多いと思いますから。 そうすれば、(例えば、1年の秒数の例など)検算も 不要ですし。

minoa_
質問者

お礼

なるほど勉強になります。 ありがとうございます。

  • colder
  • ベストアンサー率43% (30/69)
回答No.3

半分ネタですが、こんなのはどうでしょう。 #define XX(A,B,C) A##B##C int a = XX(10,000,000);

minoa_
質問者

お礼

無理矢理やるとそんな感じになるんですね。 その文法知りませんでした。 ありがとうございます。

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.2

定数変数名を one_billion とか付ければいいだけでは?

minoa_
質問者

お礼

確かにきりのいい数字ならそれでいいですし、 よく考えたら、defineとかを使う方法もありますね。 ちょっとよく考えてなかったです。 ありがとうございました。

minoa_
質問者

補足

すみません、もう締め切ろうと思ってお礼したのですが、 やっぱりもう少しだけ残します。 というのも、この質問したのは 昔、ある言語で10000000を10'000'000と、 桁数を読みやすく区切って表記しても 動作してくれる言語を見た記憶があって、 Cでもそんな文法or表記方法があればいいな、と感じたからです。 コメントや変数名を通して伝えるのではなく、 桁数を分かりやすく表記できるのか?という疑問です。 (実用目的というよりは、むしろ好奇心に近いです) ぐぐっても出てこないので無さそうとは思ってますが… Cではこんな桁数区切る表記はできない(orできる)、という回答もらえたら締め切ります。お願いします。

  • undeatta
  • ベストアンサー率0% (0/1)
回答No.1

定例表現などはちょっと分からないですが・・ 分かりにくいコードなどを分かりやすくする方法としてコメントがあります C/C++では、「/*」から始まって「*/」で終わるまでの間の部分はコメントとして扱われ、どのような事が書いてあってもコンピュータは無視してくれます また、「//」が記述されると、その行のそれ以降の文字もコメントとして扱われます 以下のように記述すれば多少は分かりやすいのではないでしょうか↓↓ int main(void) { int n = 1000000000; //十億 ・・・ } それから、蛇足かもしれませんが大きい数字を扱う場合は、変数型に注意しましょう

minoa_
質問者

お礼

Cではやっぱり現実的にはコメントなんでしょうかね。 回答、ありがとうございました。

関連するQ&A