为什么人们定义自己的偏移?

时间:2010-08-10 20:29:38

标签: c portability

刚看到What does the following macro do?我就要问自己的问题:为什么这么多应用程序的标题会自己定义offsetof?有没有理由不依赖<stddef.h>

3 个答案:

答案 0 :(得分:7)

我不认为他们不信任标准offsetof - 至少从我所看到的情况来看,通常他们只是不知道它。

答案 1 :(得分:3)

  

有什么理由不被依赖吗?

我知道其中一个原因。当在C ++类的字段上使用标准的offsetof()时,GCC会发出警告。这导致一些人推出他们自己的版本,不会触发警告。

答案 2 :(得分:2)

或许这是来自C编译器的遗留代码,它不符合ANSI标准且没有offsetof