FP_NORMAL

Defined in header <math.h> #define FP_NORMAL /*implementation defined*/ (since C99) #define FP_SUBNORMAL /*implementation defined*/ (since C99) #define FP_ZERO /*implementation defined*/ (since C99) #define FP_INFINITE /*implementation defined*/ (since C99) #define FP_NAN /*implementation defined*/ (since C99) The FP_NORMAL, FP_SUBNORMAL, FP_ZERO, FP_INFINITE, FP_NAN macros each represent a distinct category of floating-point numbers.

rint

Defined in header <math.h> float rintf( float arg ); (1) (since C99) double rint( double arg ); (2) (since C99) long double rintl( long double arg ); (3) (since C99) Defined in header <tgmath.h> #define rint( arg ) (4) (since C99) Defined in header <math.h> long lrintf( float arg ); (5) (since C99) long lrint( double arg ); (6) (since C99) long lrintl( long double arg ); (7) (since C99) Defined in header <tgmat

signal

Defined in header <signal.h> void (*signal( int sig, void (*handler) (int))) (int); Sets the error handler for signal sig. The signal handler can be set so that default handling will occur, signal is ignored, or an user-defined function is called. When signal handler is set to a function and a signal occurs, it is implementation defined whether signal(sig, SIG_DFL) will be executed immediately before the start of signal handler. Also, the implementation can prevent some imp

Type-generic math

The header <tgmath.h> includes the headers <math.h> and <complex.h> and defines several type-generic macros that determine which real or, when applicable, complex function to call based on the types of the arguments. For each macro, the parameters whose corresponding real type in the unsuffixed math.h function is double are known as generic parameters (for example, both parameters of pow are generic parameters, but only the first parameter of scalbn is a generic parameter). Wh

crealf

Defined in header <complex.h> float crealf( float complex z ); (1) (since C99) double creal( double complex z ); (2) (since C99) long double creall( long double complex z ); (3) (since C99) Defined in header <tgmath.h> #define creal( z ) (4) (since C99) 1-3) Returns the real part of z. 4) Type-generic macro: if z has type long double complex, long double imaginary, or long double, creall is called. If z has type float complex, flo

FE_DFL_ENV

Defined in header <<fenv.h>> #define FE_DFL_ENV /*implementation defined*/ (since C99) The macro constant FE_DFL_ENV expands to an expression of type const fenv_t*, which points to a full copy of the default floating-point environment, that is, the environment as loaded at program startup. Additional macros that begin with FE_ followed by uppercase letters, and have the type const fenv_t*, may be supported by an implementation. Example #include <stdio.h> #

restrict type qualifier

Each individual type in the C type system has several qualified versions of that type, corresponding to one, two, or all three of the const, volatile, and, for pointers to object types, restrict qualifiers. This page describes the effects of the restrict qualifier. Only pointers to object types may be restrict-qualified (in particular, int restrict *p and float (* restrict f9)(void) are errors). restrict semantics apply to lvalue expressions only; for example, a cast to restrict-qualified point

Lookup and name spaces

When an identifier is encountered in a C program, a lookup is performed to locate the declaration that introduced that identifier and that is currently in scope. C allows more than one declaration for the same identifier to be in scope simultaneously if these identifiers belong to different categories, called name spaces: 1) Label name space: all identifiers declared as labels. 2) Tag names: all identifiers declared as names of structs, unions and enumerated types. Note that all three kinds o

va_end

Defined in header <stdarg.h> void va_end( va_list ap ); The va_end macro performs cleanup for an ap object initialized by a call to va_start or va_copy. va_end may modify ap so that it is no longer usable. If there is no corresponding call to va_start or va_copy, or if va_end is not called before a function that calls va_start or va_copy returns, the behavior is undefined. Parameters ap - an instance of the va_list type to clean up Expanded value (none). Ref

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