---
name: "assert"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/assert"
---

# assert(3)

expression verification macro

## NAME

**assert** – expression verification macro

## SYNOPSIS

**#include \<assert.h\>**

**assert**(*expression*);

## DESCRIPTION

The **assert**() macro tests the given *expression* and if it is false, the calling process is terminated. A diagnostic message is written to *stderr* and the [abort(3)](/abort/3.md) function is called, effectively terminating the program.

If *expression* is true, the **assert**() macro does nothing.

The **assert**() macro may be removed at compile time with the [cc(1)](/cc/1.md) option **-DNDEBUG**.

## DIAGNOSTICS

The following diagnostic message is written to *stderr* if *expression* is false:

```
"assertion \"%s\" failed: file \"%s\", line %d\n", \
		    "expression", __FILE__, __LINE__);
```

## SEE ALSO

[cc(1)](/cc/1.md), [abort(3)](/abort/3.md)

## STANDARDS

The **assert**() macro conforms to ANSI X3.159-1989 (“ANSI C89”).

## HISTORY

A **assert** macro appeared in Version 6 AT&T UNIX.
