ssize_t size_t c sizeof size-t

ssize_t - Siempre debería incluir stddef.h si uso sizeof y size_t



size_t c (3)

En c, la definición para size_t proviene de uno de varios encabezados: stddef.h , stdio.h , stdlib.h , string.h , time.h o wchar.h .

Hay varias formas en que la implementación del compilador puede arreglar esto, pero tenga en cuenta que una forma que no se puede usar es hacer que el compilador incluya uno de estos encabezados detrás de usted: eso no es algo que se permita un compilador de C para hacer (esta restricción se eliminó para C ++, que se permite incluir cualquiera de los encabezados estándar para sus propios fines).

Si estoy usando el operador sizeof y uso size_t en mi código, ¿tengo necesariamente que incluir stddef.h ? No he incluido stddef.h , y mi código se compila sin previo aviso con MVS2008 y con Borland C ++ BuilderX.

Muchas gracias...


No, puede incluir un encabezado que a su vez incluye stddef.h

La definición de size_t se proporcionará a un fragmento de código de referencia incluyendo el archivo de encabezado stdlib.h . De hecho, la mayoría de las implementaciones no lo tienen definido literalmente en este archivo, pero en su lugar incluyen el archivo stddef.h como, por ejemplo, la biblioteca estándar del compilador GNU C. La inclusión directa de stddef.h para el código de la aplicación es totalmente válida y, por lo tanto, puede reemplazar a stdlib.h en los casos en que no se necesiten o deseen otros miembros de este archivo.

Source


sizeof() , aunque parece una llamada de función, es en realidad un operador y parte del núcleo del idioma. No se necesita incluir.

size_t se define en varios encabezados: stddef.h , string.h , stdlib.h , y stdio.h . Incluir cualquiera de ellos es suficiente para usar size_t en tu código.