コンパイル時にfloatと倍精度を切り替えたい場合は、どこを見ればよいですか。たとえば、ユーザーが倍精度ではなくすべてを浮動小数点数にしたい場合、この柔軟性をどのように維持できますか?言い換えると、条件付きで浮動小数点または倍精度のいずれかになり得る変数をどのように定義する必要がありますか?
質問する
3247 次
3 に答える
17
コンパイル時に切り替えても問題ない場合は、単純typedef
に次のようにします。
#ifdef USE_DOUBLES
typedef double user_data_t;
#else
typedef float user_data_t;
#endif
user_data_t
コードで使用し、USE_DOUBLES
必要に応じdoubles
てコンパイル時に設定します。
g++ -DUSE_DOUBLES=1 myprogram.cpp
于 2013-01-24T22:25:51.597 に答える
1
#define
コードに s を含めたくない。
2 つの異なる s を持つ 2 つの異なるヘッダーがtypedef
あり、ビルド オプションでどのヘッダーを含めるかを選択できるようにします。
于 2013-01-24T22:59:05.353 に答える
1
データをどのように使用するつもりなのかを正確に知らなければ、正しいソリューションを推奨することは困難です。
ユニオンの日付型を見てください。
http://msdn.microsoft.com/en-us/library/5dxy4b7b(v=VS.80).aspx
用途によっては、テンプレートも有効なオプションです。
于 2013-01-24T22:25:04.920 に答える