-1

簡単なテストのために、コメントを使用してコードの 2 つのバリエーションを簡単に交換する方法を考え出しました。

doSomeNormalCode();
findAnObject()
//*/
.doA()
/*/
.doB()
//*/
;
additionalNormalCode();

これは、との間の最初のスワップをfindAnObject().doA(); 単純に削除することを呼び出します。これは、さらに行を追加することで拡張できます。/.doA().doB()/*/

doSomeNormalCode();
findAnObject()
//*/
.doA()
/*/
.doB()
/*/
.doC()
/*/
.doD()
/*/
.doE()
//*/
;
additionalNormalCode();

これを実行findAnObject().doA().doC().doE(); すると、 any/*/を aに変えて//*/、その下のすべての行を切り替えることができます。したがって、/before.doB()を追加すると、次のように変更されますfindAnObject().doA().doB().doD().doF();

もちろん、これはすべて非常に複雑です。私はそれに慣れており、非常に迅速に機能します。テスト用のオプションを非常に迅速に交換するためだけに、コミットされたコードに保持することはありません。

あるセクションをコメントアウトして別のセクションのコメントを解除する以外に、さまざまなオプションをすばやく切り替える簡単な方法はありますか?コメントアウトされたコード内に /**/ コメントがあり、すべての行に//.

ここでは明らかに C スタイルのコメントについて言及していますが、他の言語にも興味があります。

4

3 に答える 3

6

どうですか

#if 0
  doA()
#else
  doB()
#endif

手始めに、0 を 1 に切り替えるだけです。または、2 つ以上のオプションがある場合は、定義を使用します。

于 2013-03-04T17:16:34.780 に答える
1

#define#ifdef、これ#ifndefには#elseうまくいきます。

たとえば。

#ifdef DEFA
doA();
#endif

#ifdef DEFB
doB();
#endif

ほとんどのコンパイラでは、コマンド ラインで #define を渡してオプションを切り替えることができます。

たとえば、Visual C++ では、次のようにコンパイルできます。

cl /DDEFA a.c

また

cl /DDEFB a.c

また

cl /DDEFA /DDEFB a.c

于 2013-03-04T17:16:25.480 に答える
0

これが最初の答えの例です

#define DOB

#ifdef DOA
doA()
#elif DOB
doB()
#elif DOC
doC()
#endif
于 2013-03-04T17:22:29.637 に答える