2017-10-17 5 views
-2

今、私は同じコアで2つのコードをマージしていますが、#defineで区別します。必要なのは、必要な構成を選択する方法です実行時にコードを使用してENABLE(定義済み)を使用してロードする構成を確認し、コードを変更して動作させるにはどうすればよいですか? ありがとう実行時に#defineをC++で再定義する

+1

できません。コンパイラがあなたのコードのコンパイルを開始するまでに、ソースに残っている '#define'やその他のプリプロセッサ指令のトレースはありません。あなたは他の戦略を見つけ出す必要があります。 – dasblinkenlight

+0

Teeeeeechnically、いくつかのレベルのデバッグシンボルは、より良いデバッグ経験を可能にするためにそれらを保つことを可能にします:) – chris

+0

変数として宣言し、この#definesを使用する依存関係を変更する方が良いですか?しかし、例えば、それらのサイズを宣言するためにベクトルを使用するベクターがたくさんあり、ベクトル[int]のようなintを使ってベクトルサイズを宣言することは簡単ではありません。 –

答えて

2

できません。マクロはプリプロセッサです。コンパイル中に消えてしまいます。 変数が最適です。ところで、この質問はここで答えられます。

Changing a macro at runtime in C

関連する問題