Digamos que escribo char c[99] = {'Stack Overflow'};
en C o C++. Compila bien pero ¿es esto válido? Por válido, quise decir no invocar ningún tipo de comportamiento indefinido o no especificado.¿Es esta una declaración válida de C?
Nuevamente si escribo char c[99] = 'Stack Overflow';
gcc se queja de la constante multicharacter que es obvia, pero en el apartado anterior cuando estoy entre corchetes el compilador está contento. ¿Por que es esto entonces?
También observo que puts(c);
después de la primera instrucción dará salida 'w' precisamente el último carácter de una cadena general en el lugar de Stack Overflow
. ¿Porque?
¿Alguien podría explicar estos comportamientos por separado?
Compilarlo y descubrirlo. – Falmarri
Él ya dijo que lo compiló ... – indiv
@Falmarri: Creo que ganaste el premio RTFQ. Dijo "compila bien" y también describe la salida, obviamente lo probó. Pero las pruebas no le dicen si es portátil o está bien definido por el estándar. –