thrd_sleep

Defined in header <threads.h> int thrd_sleep( const struct timespec* time_point, struct timespec* remaining ); (since C11) Blocks the execution of the current thread for at least until the TIME_UTC based time point pointed to by time_point has been reached. The sleep may resume earlier if a signal that is not ignored is received. In such case, if remaining is not NULL, the remaining time duration is stored into the object pointed to by remaining. Parameter

else

Usage if statement: as the declaration of the alternative branch

mbrlen

Defined in header <wchar.h> size_t mbrlen( const char* s, size_t n, mbstate_t* ps ); (since C95) Determines the size, in bytes, of the remainder of the multibyte character whose first byte is pointed to by s, given the current conversion state ps. This function is equivalent to the call mbrtowc(nullptr, s, n, ps?ps:&internal) for some hidden object internal of type mbstate_t, except that the expression ps is evaluated only once. Parameters s - pointer to an elem

floating constant

Allows values of floating type to be used directly in expressions. Syntax A floating constant is a non-lvalue expression having the form: significand exponent(optional) suffix(optional) Where the significand has the form. whole-number(optional) .(optional) fraction(optional) The exponent has the form. e | E exponent-sign(optional) digit-sequence (1) p | P exponent-sign(optional) digit-sequence (2) (since C99) 1) The exponent syntax for a decimal floating-point

nearbyint

Defined in header <math.h> float nearbyintf( float arg ); (1) (since C99) double nearbyint( double arg ); (2) (since C99) long double nearbyintl( long double arg ); (3) (since C99) Defined in header <tgmath.h> #define nearbyint( arg ) (4) (since C99) 1-3) Rounds the floating-point argument arg to an integer value in floating-point format, using the current rounding mode. 4) Type-generic macro: If arg has type long double, nearbyin

fopen

Defined in header <stdio.h> (1) FILE *fopen( const char *filename, const char *mode ); (until C99) FILE *fopen( const char *restrict filename, const char *restrict mode ); (since C99) errno_t fopen_s(FILE *restrict *restrict streamptr, const char *restrict filename, const char *restrict mode); (2) (since C11) 1) Opens a file indicated by filename and returns a pointer to the file stream associated with that file. mode is used to

cnd_timedwait

Defined in header <threads.h> int cnd_timedwait( cnd_t* restrict cond, mtx_t* restrict mutex, const struct timespec* restrict time_point ); (since C11) Atomically unlocks the mutex pointed to by mutex and blocks on the condition variable pointed to by cond until the thread is signalled by cnd_signal or cnd_broadcast, or until the TIME_UTC based time point pointed to by time_point has been reached. The mutex is locked again before the function returns. The

Common mathematical functions

Functions Defined in header <stdlib.h> abslabsllabs (C99) computes absolute value of an integral value (|x|) (function) divldivlldiv (C99) computes quotient and remainder of integer division (function) Defined in header <inttypes.h> imaxabs (C99) computes absolute value of an integral value (|x|) (function) imaxdiv (C99) computes quotient and remainder of integer division (function) Defined in header <math.h> Basic operations fa

Fixed width integer types

Types Defined in header <stdint.h> int8_tint16_tint32_tint64_t signed integer type with width of exactly 8, 16, 32 and 64 bits respectivelywith no padding bits and using 2's complement for negative values(provided only if the implementation directly supports the type) int_fast8_tint_fast16_tint_fast32_tint_fast64_t fastest signed integer type with width of at least 8, 16, 32 and 64 bits respectively int_least8_tint_least16_tint_least32_tint_least64_t smallest signed integ

Implicit conversions

When an expression is used in the context where a value of a different type is expected, conversion may occur: int n = 1L; // expression 1L has type long, int is expected n = 2.1; // expression 2.1 has type double, int is expected char *p = malloc(10); // expression malloc(10) has type void*, char* is expected Conversions take place in the following situations: Conversion as if by assignment In the assignment operator, the value of the right-hand operand is converted to the unqualified type