2012-05-18 10 views
12

Un compañero de trabajo mío estaba mirando a través de una de nuestras bases de código heredado y encontró la siguiente línea:¿Qué significa este literal de cadena en la expresión booleana?

ATLASSERT(rtaddress == m_lRTAddress && "Creation settings should match FIFO");

no entendemos cuál es el propósito de la cadena literal es para; ¿es por algo más que solo comentar? De la forma en que lo veo, si rtaddress NO es igual a m_lRTAddress, entonces la cadena nunca será evaluada debido a un cortocircuito. Si rtaddress ES igual a m_lRTAddress, se evaluará la cadena literal, pero una cadena literal evaluada para una expresión booleana siempre devolverá true; ¿entonces cuál es el punto?

+17

Es un truco para que esa cadena aparezca en el cuadro de diálogo afirmar. Mensaje de advertencia autodocumentado. –

+0

Es una pérdida reprensible de espacio y también es oscurantismo. Use un comentario. El mensaje de falla de afirmación lo dirigirá a la línea de código fuente (al menos lo hará si un ATLASSERT es como una declaración estándar). – dave

Respuesta

13

Creo que es así que si la afirmación falla, puede ver el motivo por el cual se agregó la afirmación.

Cuestiones relacionadas