0
fprintfが継承する肥大のため、fprintf(stderr, "Error occured with file %s\n", file);
のfprintf呼び出しをvfprintf(FILE * stream, const char * format, va_list arg)
に置き換えます。 これにラッパー関数を記述することなく、vfprintfを使用することは可能ですか?何とかva_list引数を作成していますか?ラッパー関数なしでvfprintfを使用しますか?
'fprintf'はそう 「継承fprintfの肥大化」とは、一つまた、vfprintf実際にはそれ自体でvfprintf''の非常に薄いラッパーです。それ以外の場合は、正確にあなたが膨らんだと思うものを説明する必要があります。 –
私はそれを知らなかった、ありがとう。私のコードをdietlibcとリンクしています。これは、そのprintfをコンパイルするときに警告します。 '/opt/diet/lib-x86_64/libc.a(vfprintf.o):関数\' vfprintf ':(.text + 0x2e ):警告:警告:printf関数は数キロバイトのbloatを追加します.'それほど膨らみがなく、警告もありません。 – thpetrus
"膨張"とは、 'vfprintf'を含むprintfファミリ全体からのものです。これを避ける唯一の方法は、文字列フォーマット関数をまったく使用しないことです。 – duskwuff