Saltar a contenido

Última actualización:2026-10-12

Aserciones assert en C++

Sobre el autor:

Cuenta pública personal de WeChat:

wechat

1. Primer ejemplo de aserción

Una aserción es una macro, no una función.

El prototipo de la macro assert está definido en (C) y (C++). Su función es terminar la ejecución del programa si su condición devuelve un error.

Se puede desactivar assert definiendo NDEBUG, pero debe hacerse al comienzo del código fuente, antes de incluir .

void assert(int expression);

Ejemplo de código: assert.c

#include <stdio.h> 
#include <assert.h> 

int main() 
{ 
    int x = 7; 

    /*  Some big code in between and let's say x  
    is accidentally changed to 9  */
    x = 9; 

    // Programmer assumes x to be 7 in rest of the code 
    assert(x==7); 

    /* Rest of the code */

    return 0; 
} 
```Salida:
```c
assert: assert.c:13: main: Assertion 'x==7' failed.
```Como se puede ver, la salida muestra el archivo de código fuente y la línea donde se encuentra el error.

## 2. Aserciones frente al manejo normal de errores

+ Las aserciones se utilizan principalmente para comprobar situaciones lógicamente imposibles.

>Por ejemplo, pueden usarse para comprobar el estado que el código espera antes de comenzar a ejecutarse, o para comprobar el estado una vez finalizada la ejecución. A diferencia del manejo normal de errores, las aserciones suelen estar deshabilitadas en tiempo de ejecución.

+ Para ignorar las aserciones, añade al comienzo del código:
```c++
#define NDEBUG          // 加上这行,则 assert 不可用
Código de ejemplo: ignore_assert.c

Temas relacionados

Comentarios