質問: 1) { str.Format(SET_VALUE3, dValue) } else { str.Format(SET_VALUE5, dValue) } ``` とする方法があると思いますが、複数個所あるため、`str.Format(SET_VALUE, dValue)` はそのままにして、 `#define SET_VALUE` の値を `"%.3f"` , `"%.5f"` に場合分けし、 特定の条件ならば `SET_VALUE` は `"%.3f"` 、それ以外ならば`SET_VALUE` は `"%.5f"` とdefine定義される 分岐の判定処理を作成したいのですが、`define` の分岐は可能なのでしょうか? 伝わっているかわかりませんがご教示お願いします。
回答: ``` int precision = MODE == 1 ? 3 : 5; str.Format(".*f", precision, dValue); ``` といった書き方ができます。その上で、フォーマット文字列をヘッダーファイルに定義するよりは、書式化済み文字列を返す関数を定義するべきではないでしょうか?