刚看到What does the following macro do?我就要问自己的问题:为什么这么多应用程序的标题会自己定义offsetof
?有没有理由不依赖<stddef.h>
?
答案 0 :(得分:7)
我不认为他们不信任标准offsetof
- 至少从我所看到的情况来看,通常他们只是不知道它。
答案 1 :(得分:3)
有什么理由不被依赖吗?
我知道其中一个原因。当在C ++类的字段上使用标准的offsetof()时,GCC会发出警告。这导致一些人推出他们自己的版本,不会触发警告。
答案 2 :(得分:2)
或许这是来自C编译器的遗留代码,它不符合ANSI标准且没有offsetof
?