timespec_get

Defined in header <time.h> int timespec_get( struct timespec *ts, int base) (since C11) #define TIME_UTC /* implementation-defined */ (since C11) 1) Modifies the timespec object pointed to by ts to hold the current calendar time in the time base base. 2) Expands to a value suitable for use as the base argument of timespec_get Other macro constants beginning with TIME_ may be provided by the implementation to indicate additional time bases. If base is TIME_UTC, then

FLT_EVAL_METHOD

Defined in header <float.h> #define FLT_EVAL_METHOD /* implementation defined */ (since C99) Specifies the precision in which all floating-point arithmetic operations other than assignment and cast are done. Value Explanation negative values except -1 implementation-defined behavior -1 the default precision is not known 0 all operations and constants evaluate in the range and precision of the type used. Additionally, float_t and double_t are equivalent to flo

Other operators

A collection of operators that do not fit into any of the other major categories. Operator Operator name Example Description (...) function call f(...) call the function f(), with zero or more arguments , comma operator a, b evaluate expression a, disregard its return value and complete any side-effects, then evaluate expression b, returning the type and the result of this evaluation (type) type cast (type)a cast the type of a to type ? : conditional operator

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 char

CMPLXF

Defined in header <complex.h> float complex CMPLXF( float real, float imag ); (since C11) double complex CMPLX( double real, double imag ); (since C11) long double complex CMPLXL( long double real, long double imag ); (since C11) Each of these macros expands to an expression that evaluates to the value of the specified complex type, with the real part having the value of real (converted to the specified argument type) and the imaginary part having the

towupper

Defined in header <wctype.h> wint_t towupper( wint_t wc ); (since C95) Converts the given wide character to uppercase, if possible. Parameters wc - wide character to be converted Return value Uppercase version of wc or unmodified wc if no uppercase version is listed in the current C locale. Notes Only 1:1 character mapping can be performed by this function, e.g. the uppercase form of 'ß' is (with some exceptions) the two-character string "SS", which cannot

atomic_flag_test_and_set

Defined in header <stdatomic.h> _Bool atomic_flag_test_and_set( volatile atomic_flag* obj ); (1) (since C11) _Bool atomic_flag_test_and_set_explicit( volatile atomic_flag* obj, memory_order order ); (2) (since C11) Atomically changes the state of a atomic_flag pointed to by obj to set (true) and returns the previous value. The first version orders memory accesses according to memory_order_seq_cst, the second version orders memory accesses according to order. The argum

isunordered

Defined in header <math.h> #define isunordered(x, y) /* implementation defined */ (since C99) Determines if the floating point numbers x and y are unordered, that is, one or both are NaN and thus cannot be meaningfully compared with each other. Parameters x - floating point value y - floating point value Return value Nonzero integral value if either x or y is NaN, ​0​ otherwise. Example #include <stdio.h> #include <math.h> int main(voi

va_copy

Defined in header <stdarg.h> void va_copy( va_list dest, va_list src ); (since C99) The va_copy macro copies src to dest. va_end should be called on dest before the function returns or any subsequent re-initialization of dest (via calls to va_start or va_copy). Parameters dest - an instance of the va_list type to initialize src - the source va_list that will be used to initialize dest Expanded value (none). Example #include <stdio.h> #include

_Imaginary_I

Defined in header <complex.h> #define _Imaginary_I /* unspecified */ (since C99) The _Imaginary_I macro expands to a value of type const float _Imaginary with the value of the imaginary unit. As with any pure imaginary number support in C, this macro is only defined if the imaginary numbers are supported. A compiler that defines __STDC_IEC_559_COMPLEX__ is not required to support imaginary numbers. POSIX recommends checking if the macro _Imaginary_I is defined to identify