質問15.4の長さの計算:comp.lang.c FAQのエラー? variadicallyフォーマットされた文字列
len = strlen(first);
va_start(argp, first);
while((p = va_arg(argp, char *)) != NULL)
len += strlen(p);
va_end(argp);
しかし:そこのコード例でhttp://c-faq.com/varargs/varargs1.html
を、彼らはリストの最後に達した場合のva_argはNULLを返します考えているようですva_argのドキュメントで明示的にこれが当てはまるとは言えず、va_argはリストの最後を幸いに過ぎます。これは、上記のコードを模倣し、結果としてsegfaultを取得しようとする私の経験に同意します。
-1完全な記事を読んでいないため – pmg
私は理解します。私はC言語について新しいことを学ぶたびに、抵抗をやめると言語の美しさはさらに増します – Xamuel
将来このスレッドを踏みにじる人のためのコメント:NULLを自動的に追加したい場合は(CPPを使用していると仮定します'#define myformatter(first、...)myformatter_(first、## __VA_ARGS__、NULL)' – Xamuel