gccが提供するヘッダーstddef.hを読んだところ、間違いの可能性がありました。最初は間違いだと思います。しかし、gccの3つの異なるバージョン(3.4.5、4,4,3、および4,6,3)のヘッダーstddef.hを読んだ後、それらがその時点で同じであることがわかったので、わかりません。おそらく私は間違っています。
#if (!defined(_STDDEF_H) && !defined(_STDDEF_H_) && !defined(_ANSI_STDDEF_H) \
&& !defined(__STDDEF_H__)) \
|| defined(__need_wchar_t) || defined(__need_size_t) \
|| defined(__need_ptrdiff_t) || defined(__need_NULL) \
|| defined(__need_wint_t)
上記のコードはstddef.hの始まりです。以下はstddef.hの終わりです。ペアがあります。
#endif /* !_STDDEF_H && !_STDDEF_H_ && !_ANSI_STDDEF_H && !__STDDEF_H__
|| __need_XXX was not defined before */
私は行に間違いがあると思います:
|| __need_XXX was not defined before */
「しない」という単語を削除する必要がありますか?
簡単ですが、間違いだとしたら、なぜ間違いを見つけて変えていないのでしょうか。