quimica - c11 standard
¿Por qué algunos encabezados estándar C comienzan con ''std'' mientras que otros no lo hacen? (1)
Por ejemplo, en el nuevo estándar C11 se han agregado stdalign.h
y threads.h
. ¿Por qué no stdthreads.h
o align.h
? ¿Es para evitar colisiones con las bibliotecas existentes y los encabezados del sistema?
En varias ocasiones, ha habido varias razones para los nombres elegidos. <stdio.h>
estaba en uso como nombre mucho antes de que existiera un estándar C; El estándar simplemente estandariza la práctica existente. El <stddef.h>
fue una invención del comité original (C89); Su nombre fue elegido porque no estaba en uso. Similarmente con <stdlib.h>
. El nombre <inttypes.h>
era una práctica existente, pero el comité necesitaba <stdint.h>
para servir implementaciones independientes. El nombre <stdarg.h>
fue elegido para ser paralelo al equivalente no prototipo <varargs.h>
. El nombre <stdbool.h>
no estaba en uso; asimismo, supongo, <stdatomic.h>
, <stdalign.h>
, <stdnoreturn.h>
. El prefijo estándar está en gran parte reservado para el estándar (pero uso un encabezado "stderr.h"
, sabiendo que podría estar pisando hielo fino). En cuanto a por qué <uchar.h>
y <threads.h>
no terminaron con un prefijo std
, supongo que alguna técnica anterior se mantuvo sustancialmente sin cambios. AFAIK, el fundamento C2011 aún no se ha completado; Puede revelar más información cuando esté disponible.