thread_local

Defined in header <threads.h> #define thread_local _Thread_local (since C11) Convenience macro which can be used to specify that an object has thread-local storage duration. References C11 standard (ISO/IEC 9899:2011): 7.26.1/3 thread_local (p: 376)

iswctype

Defined in header <wctype.h> int iswctype( wint_t wc, wctype_t desc ); (since C95) Classifies the wide character wc using the current C locale's LC_CTYPE category identified by desc. Parameters wc - the wide character to classify desc - the LC_CTYPE category, obtained from a call to wctype Return value Non-zero if the character wc has the property identified by desc in LC_CTYPE facet of the current C locale, zero otherwise. Example #include <loca

fputwc

Defined in header <wchar.h> wint_t fputwc( wchar_t ch, FILE *stream ); (since C95) wint_t putwc( wchar_t ch, FILE *stream ); (since C95) Writes a wide character ch to the given output stream stream. putwc() may be implemented as a macro and may evaluate stream more than once. Parameters ch - wide character to be written stream - the output stream Return value ch on success, WEOF on failure. If an encoding error occurs, errno is set to EILSEQ. Exa

Localization support

Defined in header <locale.h> setlocale gets and sets the current C locale (function) localeconv queries numeric and monetary formatting details of the current locale (function) lconv formatting details, returned by localeconv (struct) Locale categories LC_ALLLC_COLLATELC_CTYPELC_MONETARYLC_NUMERICLC_TIME locale categories for setlocale (macro constant) References C11 standard (ISO/IEC 9899:2011): 7.11 Localization <locale.h> (p: 223-230) 7.31.6

_Complex

Usage _Complex type: as the declaration of the type

fgetpos

Defined in header <stdio.h> int fgetpos( FILE *stream, fpos_t *pos ); (until C99) int fgetpos( FILE *restrict stream, fpos_t *restrict pos ); (since C99) Obtains the file position indicator and the current parse state (if any) for the file stream stream and stores them in the object pointed to by pos. The value stored is only meaningful as the input to fsetpos. Parameters stream - file stream to examine pos - pointer to a fpos_t object

log2

Defined in header <math.h> float log2f( float arg ); (1) (since C99) double log2( double arg ); (2) (since C99) long double log2l( long double arg ); (3) (since C99) Defined in header <tgmath.h> #define log2( arg ) (4) (since C99) 1-3) Computes the base 2 logarithm of arg. 4) Type-generic macro: If arg has type long double, log2l is called. Otherwise, if arg has integer type or the type double, log2 is called. Otherwise, log2f is

C Operator Precedence

The following table lists the precedence and associativity of C operators. Operators are listed top to bottom, in descending precedence. Precedence Operator Description Associativity 1 ++ -- Suffix/postfix increment and decrement Left-to-right () Function call [] Array subscripting . Structure and union member access -> Structure and union member access through pointer (type){list} Compound literal(C99) 2 ++ -- Prefix increment and decrement Right-t

Typedef declaration

The typedef declaration provides a way to declare an identifier as a type alias, to be used to replace a possibly complex type name. The keyword typedef is used in a declaration, in the grammatical position of a storage-class specifier, except that it does not affect storage or linkage: typedef int int_t; // declares int_t to be an alias for the type int typedef char char_t, *char_p, (*fp)(void); // declares char_t to be an alias for char // char_p to

Increment/decrement operators

Increment/decrement operators are unary operators that increment/decrement the value of a variable by 1. They can have postfix form: expr ++ expr -- As well as the prefix form: ++ expr -- expr The operand expr of both prefix and postfix increment or decrement must be a modifiable lvalue of integer type (including _Bool and enums), real floating type, or a pointer type. It may be cvr-qualified, unqualified, or atomic. The result of the postfix increment and decrement