する#include <stdio.hに> する#include <入出力ストリーム>
の#define正しい"myfirst"
int型のmain(){ CHAR STR [ 10 ]; int型 FUNC(CHAR * 0009、CHAR * STR2); のprintf(" 出力お気に入り。 \ N- " ); scanfの(" %のS "STR); // 定義されていない場合は、正しいマクロ名は、以下に定義されて#ifndefのCORRECT の#define CORRECT"テスト" #endifの// CORRECT IF(FUNC(STR、 CORRECT)== 0 ){ printf関数は、("N \ありがとう " ); } 他 { のprintf(" 申し訳ありませんが\ N- " ); } システム(" PAUSE " ); 戻り 0 ; } int型 FUNC(CHAR * 0009、CHAR * STR2){ リターンのstrcmp(STR1、STR2); }
さらに、定義されていない場合、マクロの存在かどうかを決定します。
。1はなぜか - ここで私は、「私の最初は」スペースがあった場合、どんなにI入力、常に=(FUNC(STR、CORRECT)を取得しない正しいの#defineを定義するときに、私が思う、問題が発生しましたあなたは、文字列にスペースを持つことが許されるべき?
第二の方法:
する#include <stdio.hに> する#include <iostreamの> に#define 1ラウンド の#define PI 3.14 INT のmain(){ int型A、B、 ダブルC; A = 2 、 B = 3 ; // 場合ROUND 1、ラン次の文の#if ROUND C =(+ B)* PI * 2 ; のprintf(" %.2f \ N- " 、C); //は、そうでない場合は、次のステートメントを実行します#ELSE C = + B; #endifの システム(" PAUSE " ); リターン 0 ; }
要約だけがブロックの条件を満足できるようにすることができ、ソースコードをコンパイルするために、条件付きコンパイルを使用して、ターゲットプログラムは、それによってプログラムの効率をオーバーヘッドメモリを減らし、改善、より短い生成します。