Почему люди определяют свое собственное смещение? - PullRequest
1 голос
/ 11 августа 2010

Только что увидев Что делает следующий макрос? Я должен задать свой вопрос: почему заголовки многих приложений сами определяют offsetof?Есть ли какая-то причина, по которой на <stddef.h> нельзя положиться?

Ответы [ 3 ]

7 голосов
/ 11 августа 2010

Не думаю, что они не доверяют стандарту offsetof - по крайней мере из того, что я видел, обычно они просто не знают об этом.

3 голосов
/ 11 августа 2010

Есть ли какая-то причина, по которой нельзя полагаться?

Я знаю одну из причин.GCC выдает предупреждение при использовании стандартного offsetof () для полей классов C ++.Это заставляет некоторых людей выдвигать свою собственную версию, которая не вызывает предупреждение.

2 голосов
/ 11 августа 2010

Или, возможно, это устаревший код от компилятора C, который не был совместим с ANSI и не имел offsetof?

...