とっておきの手土産を教えて

初歩的な質問ですが。

#define abc 50 // Comment

というステートメントでは abc に 50 が define されるのでしょうか。50 // Comment を define したい場合はどうすればいいのでしょうか。

A 回答 (4件)

> #define 文の 2 項めはどこまでが 2 項めとみなされるのか


2項目、という表現が適切かどうかは置いといて、#define の範囲は、その行が終わるまで(改行文字が現れるまで)です。二行以上にわたる#define を書きたい場合は、行末にバックスラッシュを置きます。
#define aeqb(a,b) do { \
(a) = (b); \
} while(0);
のように。
ただし、質問の例に関しては、プリプロセッサの処理において、#defineの処理よりコメントの処理が先に実行されるので、define結果にコメントを含めるということはできないのです。
    • good
    • 2
この回答へのお礼

回答ありがとうございます。

>#defineの処理よりコメントの処理が先に実行される

なるほど、理解できました。

お礼日時:2004/10/24 21:09

このことの目的はなんですか?

この回答への補足

特に目的は無いのですが、#define 文の 2 項めはどこまでが 2 項めとみなされるのかとふと疑問に思ったので質問してみました。

補足日時:2004/10/24 18:49
    • good
    • 0

> // も含めて定義したければ、" " で囲む


"50 // comment"
という文字列を定義したいのであればそれでいいですが、

例えば

x = abc + 4
;

と書くと、 + 4 の部分はコメントになるようにしたい、ということなら、そういうことはできません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

そうなのですか

x = abc + 4
;

が展開されて、

x = 50 // comment + 4
;

とみなされるわけではないのですか。

お礼日時:2004/10/24 18:48

普通は abc に 50 が定義されますね。


#define abc "50 // Comment"
としたいのでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。適当に改行されて質問が見にくくなってしまいましたが。

#define 文の中でも // 以下はコメントとみなされる。
// も含めて定義したければ、" " で囲む

と言うことですね。

お礼日時:2004/10/24 17:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報