2010-08-30 14 views
48

¿Dónde se define ptrdiff_t en C? Si no es trivial, ¿cómo puedo hacer que este tipo sea visible desde GCC en Linux?¿Dónde se define ptrdiff_t en C?

+2

tenga en cuenta que esta pregunta no es para nada específica de Linux. –

Respuesta

62

Se define en stddef.h.


esa cabecera define los tipos integrales size_t, ptrdiff_t, y wchar_t, el funcional macro offsetof, y la constante de macro NULL.

+0

Curiosamente, está ubicado en 'linux/stddef.h' (pero incluye bien con' #include '. Solo contiene la definición de' NULL' (pero incluyendo me da 'ptrdiff_t'). Hay algunos trucos de encabezado aquí lo que me impidió que lo deslocase en primer lugar. ¿Puedes iluminar? –

+1

Y, de esos, solo 'ptrdiff_t' y' offsetof' no están definidos en ningún otro lugar, los otros tres están definidos por un número de otros encabezados también. –

+0

@Matt: no existe una definición de 'ptrdiff_t' en absoluto? Estrictamente hablando, un compilador no tiene que implementar nada en el encabezado. Podría pasar simplemente al señalar que si se incluye' stddef.h', internamente define 'ptrdiff_t' y así sucesivamente. Eso podría ser, pero no tengo su versión del encabezado disponible para mirar. – GManNickG

Cuestiones relacionadas