• ベストアンサー

printfの出力内の文字をdefineしたい

defineで定義した内容をprintfしたいのですが、どうすればいいですか? 次のようなコードを書きましたがコンパイルが通りませんでした。 #define ALP2 B int main(){ printf("A"ALP2"C"); return 0; } 上記のコードで「ABC」という出力を得たいです。 できれば変数に代入してから出力というのは避けたいので、それ以外の方法がありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

#define ALP2 "B" int main(){ printf("A%sC", ALP2); return 0; } じゃだめなのかな?

carcl
質問者

お礼

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

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

次のようにします。 #define STR(x) STR2(x) #define STR2(x) #x #define ALP2 B int main() {  printf("A" STR(ALP2) "C");  return 0; }

回答No.2

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

関連するQ&A

専門家に質問してみよう