size_t
|
Definido en el encabezado
<stddef.h>
|
||
|
Definido en el encabezado
<stdio.h>
|
||
|
Definido en el encabezado
<stdlib.h>
|
||
|
Definido en el encabezado
<string.h>
|
||
|
Definido en el encabezado
<time.h>
|
||
|
Definido en el encabezado
<uchar.h>
|
(desde C11)
|
|
|
Definido en el encabezado
<wchar.h>
|
(desde C95)
|
|
|
typedef
/*implementation-defined*/
size_t
;
|
||
size_t
es el tipo entero sin signo del resultado de
sizeof
,
offsetof
y
_Alignof
(hasta C23)
alignof
(desde C23)
, dependiendo del
modelo de datos
.
|
El ancho en bits de
|
(desde C99) |
Contenidos |
Notas
size_t
puede almacenar el tamaño máximo de un objeto teóricamente posible de cualquier tipo (incluyendo arreglos).
size_t
se utiliza comúnmente para indexación de arreglos y conteo de bucles. Los programas que utilizan otros tipos, como
unsigned
int
, para indexación de arreglos pueden fallar en, por ejemplo, sistemas de 64 bits cuando el índice excede
UINT_MAX
o si depende de aritmética modular de 32 bits.
Implementación posibletypedef typeof ( sizeof ( 0 ) ) size_t ; |
(desde C23) |
Ejemplo
#include <stddef.h> #include <stdint.h> #include <stdio.h> int main(void) { const size_t N = 101; int numbers[N]; size_t sum = 0; for (size_t ndx = 0; ndx < N; ++ndx) sum += numbers[ndx] = ndx; size_t size = sizeof numbers; printf("sum = %zu\n", sum); printf("size = %zu\n", size); printf("SIZE_MAX = %zu\n", SIZE_MAX); }
Salida posible:
sum = 5050 size = 404 SIZE_MAX = 18446744073709551615
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.19 Definiciones comunes <stddef.h> (p: TBD)
-
- 7.20.3 Límites de otros tipos enteros (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.19 Definiciones comunes <stddef.h> (p: 211)
-
- 7.20.3 Límites de otros tipos enteros (p: 215)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.19 Definiciones comunes <stddef.h> (p: 288)
-
- 7.20.3 Límites de otros tipos enteros (p: 293)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.17 Definiciones comunes <stddef.h> (p: 253)
-
- 7.18.3 Límites de otros tipos enteros (p: 258)
- Estándar C89/C90 (ISO/IEC 9899:1990):
-
- 4.1.6 Definiciones comunes <stddef.h>
Véase también
|
tipo entero con signo devuelto al restar dos punteros
(typedef) |
|
|
desplazamiento en bytes desde el inicio de un tipo struct hasta el miembro especificado
(macro de función) |
|
|
Documentación de C++
para
size_t
|
|