プリプロセッサで質問です。
#define ABC 10
void main(void){
printf("%"ABC"s\n", "hoge");
}

上記が安易に printf("%10s\n", "hoge"); になるのかと思いきや
違うんですね。

#define ABC 10
#define to_str(s) #s
void main(void){
printf("%"to_str(ABC)"s\n", "hoge");
}

などとしても printf("%10s\n", "hoge"); にはならないんですね。

どうしたら良いのでしょうか。どなたか良い案を教えていただければさいわいでございます。