##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# C language

From cppreference.com
< c

This is a brief reference of available C constructs.

### [edit] General topics

#### [edit] Preprocessor

#### [edit] Comments

#### [edit] Keywords

#### [edit] ASCII chart

#### [edit] Escape sequences

#### [edit] History of C

### [edit] Flow control

#### [edit] Conditional execution statements

Different code paths are executed according to the value of given expression

- if executes code conditionally
- switch executes code according to the value of an integral argument

#### [edit] Iteration statements

The same code is executed several times

- for executes loop
- while executes loop, checking condition before each iteration
- do-while executes loop, checking condition after each iteration

#### [edit] Jump statements

Continue execution at a different location

- continue skips the remaining part of the enclosing loop body
- break terminates the enclosing loop
- goto continues execution in another location
- return terminates execution of the enclosing function

### [edit] Functions

The same code can be reused at different locations in the program

- function declaration declares a function
- inline specifier hints the compiler to insert a function's body directly into the calling code

### [edit] Types

- fundamental types defines basic character, integer and floating point types
- pointer types, holding a memory location
- compound types defines types that can hold several data members
- enumeration types defines types that are able to hold only one of the specified values
- union types defines types that can hold data in several representations
- function types define function call signatures, that is the types of arguments and the return type

#### [edit] Specifiers

- cv specifiers specifies constness and volatility of a type
- storage-class specifiers specifies storage duration and linkage of a type
- alignas specifier specifies that the storage for the variable should be aligned by specific amount (since C99)
- function specifiers specifies how the compiler should handle a function (since C99)

#### [edit] Literals

Literals are the tokens of a C program that represent constant values, embedded in the source code.

- integer literals are decimal, octal, or hexadecimal numbers of integer type.
- character literals are individual characters of type char, char16_t, char32_t, or wchar_t.
- floating-point literals are values of type float, double, or long double
- string literals are sequences of characters, which may be narrow, multibyte, or wide.
- boolean literals are values of type bool, that is true and false (since C99)
- user-defined literals are constant values of user-specified type (since C99)

#### [edit] Expressions

An expression is a sequence of operators and operands that specifies a computation. An expression can result in a value and can cause side effects.

- order of evaluation of arguments and subexpressions specifies the order in which intermediate results are obtained.
- operators allow the use of syntax commonly found in mathematics

Common operators
assignment | increment decrement | arithmetic | logical | comparison | member access | other
a = b a += b a -= b a *= b a /= b a %= b a &= b a |= b a ^= b a <<= b a >>= b | ++a --a a++ a-- | +a -a a + b a - b a * b a / b a % b ~a a & b a | b a ^ b a << b a >> b | !a a && b a || b | a == b a != b a < b a > b a <= b a >= b | a[b] *a &a a->b a.b | a(...) a, b (type) a ? : sizeof _Alignof (since C11)

- operator precedence is the order in which operators are bound to their arguments
- alternative representations exist for some of the operators

#### [edit] Utilities

Types

- typedef declaration creates a synonym for a type
- attributes defines additional information about variable (since C99)

Casts

- standard conversions implicit conversions from one type to another

### [edit] Miscellaneous

- main function
- Inline assembly

### [edit] See also

C++ documentation for C++ language constructs

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/language&oldid=71034"