En GNUC C, puede usar typeof(expression)
, y es legal usar una expresión con efectos secundarios dentro. Así, por ejemplo, puede hacer que el código C:Efectos secundarios dentro de un typeof() expresión
int x = 0;
typeof(x++) y;
En este caso, el efecto secundario es ignorado y X sigue siendo cero después (esto tiene sentido ya que los tipos son un tiempo de compilación-único).
Sin embargo, el GCC documentation dice:
El operando de typeof se evalúa por sus efectos secundarios si y sólo si es una expresión de tipo modificado variablemente o el nombre de un tipo tal.
¿Qué significa esta frase? ¿Es realmente posible escribir typeof
con un efecto secundario y hacer que el efecto secundario se ejecute realmente en el tiempo de ejecución? Para mí, esta frase parece indicar esto.
http://stackoverflow.com/q/4436889/195488 –
@ 0A0D Esa pregunta también habla de 'typeof', pero no menciona los efectos secundarios, solo las expresiones sin efectos secundarios. –
@PhilippWendler: ¡Buena pregunta! – pje