-1

私のコードにはマクロがありました:

#define TPS 1(or 0)
int main()
{
....
   if(var)
   {
#ifdef TPS
do something
#endif
   }
}

if(var)しかし今、私は達成できるようにマクロとマージしたいと思います:

int var=1;
#define TPS   (if(var))

int main()
{
   int a, b, c;
   a=1;b=2;c=3;
#if TPS
   printf("a: %d\n", a);
   printf("b: %d\n", b);
   printf("c: %d\n", c);
#endif
   printf("++a: %d\n", ++a);
   return 0;
 }

つまり、マクロ条件内のコード ブロックは、var=1 たとえば var=1 の場合にのみ存在する必要があります。

int main()
{
   int a, b, c;
   a=1;b=2;c=3;
   printf("a: %d\n", a);
   printf("b: %d\n", b);
   printf("c: %d\n", c);
   printf("++a: %d\n", ++a);
   return 0;
 }

そして、var=0 の場合:

int main()
{
   int a, b, c;
   a=1;b=2;c=3;
   printf("++a: %d\n", ++a);
   return 0;
 }

これを達成するためにどのように実装でき#define TPSますか?

4

2 に答える 2

0

var整数を失う:

#define TPS 1
#if TPS == 1
   printf("a: %d\n", a);
   printf("b: %d\n", b);
   printf("c: %d\n", c);
#endif

定義されているかどうかを確認するだけで、次のように実行できます#ifdef

#define TPS
#ifdef TPS
   printf("a: %d\n", a);
   printf("b: %d\n", b);
   printf("c: %d\n", c);
#endif

詳細はこちら: http://en.wikipedia.org/wiki/C_preprocessor

于 2013-07-31T07:44:31.733 に答える