プロが教えるわが家の防犯対策術!

defineで定義した内容をprintfしたいのですが、どうすればいいですか?
次のようなコードを書きましたがコンパイルが通りませんでした。

#define ALP2 B

int main(){

printf("A"ALP2"C");

return 0;

}

上記のコードで「ABC」という出力を得たいです。
できれば変数に代入してから出力というのは避けたいので、それ以外の方法がありましたら教えてください。

A 回答 (3件)

#define ALP2 "B"


int main(){
printf("A%sC", ALP2);
return 0;
}
じゃだめなのかな?
    • good
    • 0
この回答へのお礼

%sはchar型の文字列だったら
変数じゃなくても構わないことをすっかり忘れていました。

ありがとうございます。助かりました。

お礼日時:2009/06/12 17:00

次のようにします。



#define STR(x) STR2(x)
#define STR2(x) #x

#define ALP2 B

int main()
{
 printf("A" STR(ALP2) "C");
 return 0;
}
    • good
    • 0

> printf("A"ALP2"C");



printf("A" #ALP2 "C");
ということですか?
#については,「文字列化演算子」あたりをキーに探すとよいでしょう (#では流石に検索できないと思うので)。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています