static assert declaration

static assert declaration

Syntax

_Static_assert ( expression , message ) (since C11)
expression - any integer constant expression
message - any string literal

This keyword is also available as convenience macro static_assert, available in the header <assert.h>.

Explanation

The constant expression is evaluated at compile time and compared to zero. If it compares equal to zero, a compile-time error occurs and the compiler must display message as part of the error message (except that characters not in basic source character set aren't required to be displayed).

Otherwise, if expression does not equal zero, nothing happens; no code is emitted.

Keywords

_Static_assert.

Example

#include <assert.h>
int main(void)
{
    // Test if math works.
    static_assert(2 + 2 == 4, "Whoa dude!"); // or _Static_assert(...
 
    // This will produce an error at compile time.
    static_assert(sizeof(int) < sizeof(char),
                 "this program requires that int is less than char");
}

References

  • C11 standard (ISO/IEC 9899:2011):
    • 6.7.10 Static assertions (p: 145)
    • 7.2 Diagnostics <assert.h> (p: 186-187)

See also

C++ documentation for Static Assertion

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/language/static_assert

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部