3

私は非常に大きな整数リテラルの定義を扱っています。

#define X 999999999999

読みやすさを向上させるために、これを次のように変更してみました。

#define X 999/**/999/**/999/**/999

しかし、コンパイラは「nah bru ..」のようでした。

これらを読みやすくする方法はありますか?

明確にするために、この質問はソース コード内の値の外観についてのみ質問しています。これらの値をprintfなどでフォーマットする方法を尋ねているのではありません。

4

2 に答える 2

4

これは定義内で行うことができます (ただし、定義の外ではできません)。

#define X 999##111##333##444

お勧めできるかどうかはわかりませんが、合法です。(##は、プリプロセッサ トークン連結演算子です。)

出力フォーマットについて明示的に尋ねなかったので、おそらく入力フォーマットにも興味はありませんが、どちらもロケール固有のグループ化文字を許可するなど、ロケール対応にすることができます。

于 2012-10-23T04:29:52.413 に答える
1

あなたはこれを行うことができます:

#include <boost/preprocessor.hpp>
BOOST_PP_SEQ_CAT((345)(678)(901))

ソースコードでは次のように表示されます。

345678901
于 2012-10-23T04:46:46.060 に答える