Articles of c99

Pasar una matriz de longitud variable multidimensional a una función

Hay toneladas de preguntas similares, pero aún así no pude encontrar ninguna respuesta relevante para la característica de las matrices de longitud variable en C99 / C11. ¿Cómo pasar la matriz de longitud variable multidimensional a una función en C99 / C11? Por ejemplo: void foo(int n, int arr[][]) // <– error here, how to […]

¿Por qué C ++ 11 no admite listas de inicializadores designados como C99?

Considerar: struct Person { int height; int weight; int age; }; int main() { Person p { .age = 18 }; } El código anterior es legal en C99, pero no es legal en C ++ 11. ¿Cuál es la lógica de que C ++ 11 no es compatible con una característica tan útil?

Definiciones provisionales en C99 y enlaces

Considere el progtwig C compuesto por dos archivos, f1.c: int x; f2.c: int x=2; Mi lectura del párrafo 6.9.2 de la norma C99 es que este progtwig debe ser rechazado. En mi interpretación de 6.9.2, la variable x se define tentativamente en f1.c , pero esta definición provisional se convierte en una definición real al […]

¿Se requieren prototipos para todas las funciones en C89, C90 o C99?

Para ser realmente compatible con los estándares, ¿todas las funciones en C (a excepción de las principales) tienen un prototipo, incluso si solo se usan después de su definición en la misma unidad de traducción?

¿Está la línea estándar almacenada en búfer, sin búfer o indeterminada de forma predeterminada?

La sección 7.9.13/7 de c99 establece que: Al iniciar el progtwig, tres flujos de texto están predefinidos y no necesitan abrirse explícitamente: entrada estándar (para leer la entrada convencional), salida estándar (para escribir salida convencional) y error estándar (para escribir la salida de diagnóstico). Como se abrió inicialmente, el flujo de error estándar no está […]

Soporte de Visual Studio para nuevos estándares C / C ++?

Sigo leyendo sobre C99 y C ++ 11 y todas estas cosas totalmente dulces que se están agregando al estándar de idioma que podría ser útil usar algún día. Sin embargo, actualmente languidecemos en la tierra de escribir C ++ en Visual Studio. ¿Alguna de las cosas nuevas en el estándar se agregará alguna vez […]

C99 stdint.h cabecera y MS Visual Studio

Para mi sorpresa, descubrí que el C99 stdint.h no se encuentra en MS Visual Studio 2003. Estoy seguro de que tienen sus razones, pero ¿alguien sabe dónde puedo descargar una copia? Sin este encabezado no tengo definiciones para tipos útiles como uint32_t, etc.

¿Es “útil” en línea sin “estático” o “externo” útil en C99?

Cuando bash construir este código inline void f() {} int main() { f(); } usando la línea de comando gcc -std=c99 -oa ac Obtengo un error de enlazador (referencia indefinida a f ). El error desaparece si utilizo static inline o extern inline lugar de solo inline , o si compilo con -O (así que […]

¿El tipo de juego de palabras a través de una unión no está especificado en C99 y se ha especificado en C11?

Una serie de respuestas para la pregunta de desbordamiento de stack Obtener los bits de precisión simple de IEEE para un flotador sugiere usar una estructura de union para el tipo de juego de palabras (por ejemplo: convertir los bits de un float en un uint32_t ): union { float f; uint32_t u; } un; […]

¿Hay máquinas, donde sizeof (char)! = 1, o al menos CHAR_BIT> 8?

¿Hay máquinas (o comstackdores), donde sizeof(char) != 1 ? ¿El estándar C99 dice que sizeof(char) en la implementación de cumplimiento estándar DEBE ser exactamente 1? Si lo hace, por favor, dame el número de sección y la cita. Actualización: si tengo una máquina (CPU) que no puede direccionar los bytes (la lectura mínima es de […]