strspn

Defined in header <string.h> size_t strspn( const char *dest, const char *src ); Returns the length of the maximum initial segment (span) of the null-terminated byte string pointed to by dest, that consists of only the characters found in the null-terminated byte string pointed to by src. The behavior is undefined if either dest or src is not a pointer to a null-terminated byte string. Parameters dest - pointer to the null-terminated byte string to be analyzed src

complex

Defined in header <complex.h> #define complex _Complex (since C99) This macro expands to a type specifier used to identify complex types. A program may undefine and perhaps then redefine the complex macro. References C11 standard (ISO/IEC 9899:2011): 7.3.1/4 complex (p: 188) C99 standard (ISO/IEC 9899:1999): 7.3.1/2 complex (p: 170) See also imaginary (C99) imaginary type macro (macro constant)

CLOCKS_PER_SEC

Defined in header <time.h> #define CLOCKS_PER_SEC /*implementation defined*/ Expands to an expression (not necessarily a compile-time constant) of type clock_t equal to the number of clock ticks per second, as returned by clock(). Notes POSIX defines CLOCKS_PER_SEC as one million, regardless of the actual precision of clock. Until standardized as CLOCKS_PER_SEC in C89, this macro was sometimes known by its IEEE std 1003.1-1988 name CLK_TCK: that name was not included in

INFINITY

Defined in header <math.h> #define INFINITY /*implementation defined*/ (since C99) If the implementation supports floating-point infinities, the macro INFINITY expands to constant expression of type float which evaluates to positive or unsigned infinity. If the implementation does not support floating-point infinities, the macro INFINITY expands to a positive value that is guaranteed to overflow a float at compile time, and the use of this macro generates a compiler warning

do-while loop

Executes a statement repeatedly until the value of condition becomes false. The test takes place after each iteration. Syntax do statement while ( expression ) ; expression - any expression of scalar type. This expression is evaluated after each iteration, and if it compares equal to zero, the loop is exited. statement - any statement, typically a compound statement, which is the body of the loop Explanation A do-while statement causes the statement (also called the

atomic_flag

Defined in header <stdatomic.h> typedef /* unspecified */ atomic_flag; (since C11) atomic_flag is an atomic boolean type. Unlike other atomic types, it is guaranteed to be lock-free. Unlike atomic_bool, atomic_flag does not provide load or store operations. References C11 standard (ISO/IEC 9899:2011): 7.17.1/4 atomic_flag (p: 273) 7.17.8 Atomic flag type and operations (p: 285-286)

NAN

Defined in header <math.h> #define NAN /*implementation defined*/ (since C99) The macro NAN expands to constant expression of type float which evaluates to a quiet not-a-number (QNaN) value. If the implementation does not support QNaNs, this macro constant is not defined. Notes There are many different NaN values, differentiated by their payloads and their sign bits. The contents of the payload and the sign bit of the NaN generated by the macro NAN are implementation-def

rewind

Defined in header <stdio.h> void rewind( FILE *stream ); Moves the file position indicator to the beginning of the given file stream. The function is equivalent to fseek(stream, 0, SEEK_SET);, except that end-of-file and error indicators are cleared. The function drops any effects from previous calls to ungetc. Parameters stream - file stream to modify Return value (none). Example This example shows how to read a file twice. #include <stdio.h> char

Functions

A function is a C language construct that associates a compound statement (the function body) with an identifier (the function name). Every C program begins execution from the main function, which either terminates, or invokes other, user-defined or library functions. // function definition. // defines a function with the name "sum" and with the body "{ return x+y; }" int sum(int x, int y) { return x + y; } Functions may accept zero or more parameters, which are initialized from the argume

atomic_fetch_sub

Defined in header <stdatomic.h> C atomic_fetch_sub( volatile A* obj, M arg ); (1) (since C11) C atomic_fetch_sub_explicit( volatile A* obj, M arg, memory_order order ); (2) (since C11) Atomically replaces the value pointed by obj with the result of subtraction of arg from the old value of obj, and returns the value obj held previously. The operation is read-modify-write operation. The first version orders memory accesses according to memory_order_seq_cst, the second v