Concept Index

Jump to:   _   ?   \   #  
A   B   C   D   E   F   G   H   I   K   L   M   N   O   P   Q   R   S   T   U   V   W   Z  
Index EntrySection

_
_’ in variables in macrosMacros and Auto Type
__attribute__((packed))Packed Structures
__complex__ keywordComplex Data Types
_Complex keywordComplex Data Types
_Complex_IImaginary Constants

?
?: side effectConditional Branches

\
\aCharacter Constants
\bCharacter Constants
\eCharacter Constants
\fCharacter Constants
\nCharacter Constants
\rCharacter Constants
\tCharacter Constants
\vCharacter Constants

#
# preprocessing operatorStringification
## preprocessing operatorConcatenation

A
accessing array elementsAccessing Array Elements
addition operatorBasic Arithmetic
address of a labelLabels as Values
address-of operatorAddress of Data
aliasing (of storage)Aliasing
alignment of typeType Alignment
allocating memory dynamicallyDynamic Memory Allocation
allocation file-scope variablesAllocating File-Scope
argument promotionsArgument Promotions
argumentsMacro Arguments
arguments in macro definitionsMacro Arguments
arithmetic operatorsArithmetic
arithmetic, pointerPointer Arithmetic
arrayArrays
array as parametersArrays as Parameters
array elements, accessingAccessing Array Elements
array exampleArray Example
array fields, flexibleFlexible Array Fields
array of length zeroZero Length
array of variable lengthArrays of Variable Length
array parameters, variable-lengthVariable-Length Array Parameters
array types, incompleteIncomplete Array Types
array values, constructingConstructing Array Values
array, declaringDeclaring an Array
array, declaringDeclaring Arrays and Pointers
array, layout in memoryMultidimensional Arrays
array, multidimensionalMultidimensional Arrays
arrays and pointersPointers and Arrays
assigning function pointersAssigning Function Pointers
assigning structuresStructure Assignment
assignment expressionsAssignment Expressions
assignment in subexpressionsAssignment in Subexpressions
assignment type conversionsAssignment Type Conversions
assignment, modifyingModifying Assignment
assignment, simpleSimple Assignment
associativity and orderingAssociativity and Ordering
attributesAttributes
auto declarationsauto and register

B
backspaceCharacter Constants
base conversion (floating point)Round-Trip Base Conversion
bell characterCharacter Constants
binary integer constantsInteger Constants
binary operator grammarBinary Operator Grammar
bit fieldsBit Fields
bitwise operatorsBitwise Operations
blockBlocks
block scopeScope
boolean typeBoolean Type
branch cutsComplex Arithmetic
branches of conditional expressionConditional Branches
break statementbreak Statement
bytesStorage

C
call-by-valueFunction Call Semantics
calling function pointersCalling Function Pointers
calling functionsFunction Calls
carriage return in sourceWhitespace
case labels in initializersDesignated Inits
case of letters in identifiersIdentifiers
case rangesCase Ranges
castExplicit Type Conversion
cast to a unionCast to Union
CHAR_BITInteger Representations
character constantsCharacter Constants
character setCharacters
cloningLabel Value Caveats
code pointUnicode Character Codes
combining variable declarationsCombining Variable Declarations
comma operatorComma Operator
command-line parametersCommand-line Parameters
commenting out codeDeleted Code
commentsComments
common typeCommon Type
comparison, pointerPointer Comparison
comparisonsNumeric Comparisons
compatible typesCompatible Types
compilation moduleCompilation
compiler options for integer overflowSigned Overflow
compilingCompile Example
complete example programComplete Program
complex arithmetic in floating-point calculationsComplex Arithmetic
complex conjugationComplex Data Types
complex constantsImaginary Constants
complex numbersComplex Data Types
compound statementBlocks
compound typeStructures
computed gotosLabels as Values
computed includesComputed Includes
concatenationConcatenation
conditional expressionConditional Expression
conditional groupifdef
conditionalsConditionals
conjunction operatorLogical Operators
conjunction, bitwiseBitwise Operations
const fieldsconst Fields
const variables and fieldsconst
constant data types, integerInteger Const Type
constantsConstants
constants, characterCharacter Constants
constants, floating-pointFloating Constants
constants, imaginaryImaginary Constants
constants, integerInteger Constants
constants, stringString Constants
constants, wide characterWide Character Constants
constants, wide stringWide String Constants
constructing array valuesConstructing Array Values
constructors, structureStructure Constructors
continuation of linesLine Continuation
continue statementcontinue Statement
controlling macroOnce-Only Headers
conversion between pointers and integersPointer-Integer Conversion
conversions, typeType Conversions
counting vowels and punctuationswitch Example
crashStack

D
declararing functionsFunction Declarations
declaration of variablesVariable Declarations
declarations inside expressionsStatement Exprs
declarations, combiningCombining Variable Declarations
declarations, externExtern Declarations
declaring an arrayDeclaring an Array
declaring arrays and pointersDeclaring Arrays and Pointers
declaring function pointersDeclaring Function Pointers
decrement operatorIncrement/Decrement
decrementing pointersPointer Increment/Decrement
defineddefined
defining functionsFunction Definitions
dereferencing pointersPointer Dereference
designated initializersDesignated Inits
diagnosticDiagnostics
digraphsDigraphs
directive lineDirectives
directive nameDirectives
directivesDirectives
disjunction operatorLogical Operators
disjunction, bitwiseBitwise Operations
division by zeroDivision and Remainder
division operatorBasic Arithmetic
dowhile statementdo-while Statement
downward funargsNested Functions
drawbacks of pointer arithmeticPointer Arithmetic Drawbacks
Duff’s deviceDuffs Device
dynamic memory allocationDynamic Memory Allocation

E
elements of arraysArrays
empty macro argumentsMacro Arguments
enumeration typesEnumeration Types
enumeratorEnumeration Types
environment variablesEnvironment Variables
equal operatorNumeric Comparisons
error recovery (floating point)Error Recovery
escape (ASCII character)Character Constants
escape sequenceCharacter Constants
exact floating-point arithmeticExact Floating-Point
exact specification of floating-point constantsExact Floating Constants
example program, completeComplete Program
exception flags (floating point)Exception Flags
executable fileCompile Example
execution control expressionsExecution Control Expressions
exit statusValues from main
EXIT_FAILUREValues from main
EXIT_SUCCESSValues from main
expansion of argumentsArgument Prescan
explicit type conversionExplicit Type Conversion
expression statementExpression Statement
expression, conditionalConditional Expression
expressions containing statementsStatement Exprs
expressions, execution controlExecution Control Expressions
extern declarationsExtern Declarations
extern inline functionInline Function Definitions

F
failureValues from main
Fibonacci function, iterativeIterative Fibonacci
Fibonacci function, recursiveRecursive Fibonacci
field offsetField Offset
fields in structuresStructures
file-scope variablesFile-Scope Variables
file-scope variables, allocatingAllocating File-Scope
first-class objectLimitations of C Arrays
flexible array fieldsFlexible Array Fields
floating arithmetic exception flagsException Flags
floating overflowException Flags
floating point exampleFloat Example
floating underflowSpecial Float Values
floating underflowException Flags
floating-point arithmetic invalid optimizationsInvalid Optimizations
floating-point arithmetic with complex numbersComplex Arithmetic
floating-point arithmetic, exactExact Floating-Point
floating-point constantsFloating Constants
floating-point constants, exact specification ofExact Floating Constants
floating-point error recoveryError Recovery
floating-point fused multiply-addFused Multiply-Add
floating-point infinityHandling Infinity
floating-point machine epsilonMachine Epsilon
floating-point NaNHandling NaN
floating-point representationsFloating Representations
floating-point round-trip base conversionRound-Trip Base Conversion
floating-point rounding controlRounding Control
floating-point rounding issuesRounding Issues
floating-point scaling by powers of the baseScaling by the Base
floating-point signed zerosSigned Zeros
floating-point significance lossSignificance Loss
floating-point typesFloating-Point Data Types
floating-point values, specialSpecial Float Values
for statementfor Statement
formfeedCharacter Constants
formfeed in sourceWhitespace
forward declarationStatic Functions
forward function declarationsForward Function Declarations
full expressionSequence Points
function bodyFunction Body
function call semanticsFunction Call Semantics
function callsFunction Calls
function declarationsFunction Declarations
function declarations, forwardForward Function Declarations
function definitionsFunction Definitions
function definitions, inlineInline Function Definitions
function definitions, old-styleOld-Style Function Definitions
function headerFunction Header
function parameter lists, variable lengthVariable Number of Arguments
function parameter variablesFunction Parameter Variables
function pointersFunction Pointers
function pointers, assigningAssigning Function Pointers
function pointers, callingCalling Function Pointers
function pointers, declaringDeclaring Function Pointers
function prototypeFunction Declarations
function prototype scopeScope
function scopeScope
function-like macrosFunction-like Macros
functionsFunctions
functions that accept variable-length arraysVariable-Length Array Parameters
functions with array parametersArrays as Parameters
functions, nestedNested Functions
functions, staticStatic Functions
fused multiply-add in floating-point computationsFused Multiply-Add

G
global variablesFile-Scope Variables
goto statementgoto Statement
goto with computed labelLabels as Values
grammar, binary operatorBinary Operator Grammar
greater-or-equal operatorNumeric Comparisons
greater-than operatorNumeric Comparisons
guard macroOnce-Only Headers

H
handler (for signal)Signals
header fileHeader Files
hexadecimal floating constantsFloating Constants
hexadecimal floating-point constantsExact Floating Constants

I
identifiersIdentifiers
identifiersPreprocessing Tokens
IEEE 754-2008 StandardFloating Representations
if statementif Statement
ifelse statementif-else Statement
imaginary constantsImaginary Constants
including just onceOnce-Only Headers
incomplete array typesIncomplete Array Types
incomplete typesIncomplete Types
increment operatorIncrement/Decrement
incrementing pointersPointer Increment/Decrement
infinity in floating-point arithmeticHandling Infinity
initializersInitializers
initializers with labeled elementsDesignated Inits
inline function definitionsInline Function Definitions
inline functions, omission ofInline Function Definitions
integer arithmeticInteger Arithmetic
integer constant data typesInteger Const Type
integer constantsInteger Constants
integer overflowInteger Overflow
integer overflow, compiler optionsSigned Overflow
integer rangesMaximum and Minimum Values
integer representationsInteger Representations
integer typesInteger Types
internal blockBlocks
intptr_tLow-Level Pointer Arithmetic
invalid optimizations in floating-point arithmeticInvalid Optimizations
iterationLoop Statements
iterative Fibonacci functionIterative Fibonacci

K
K&R-style function definitionsOld-Style Function Definitions
keywordIdentifiers

L
labelgoto Statement
labeled elements in initializersDesignated Inits
labels as valuesLabels as Values
layout of structuresStructure Layout
left-associativeBinary Operator Grammar
length-zero arraysZero Length
less-or-equal operatorNumeric Comparisons
less-than operatorNumeric Comparisons
lexical syntaxLexical Syntax
limitations of C arraysLimitations of C Arrays
line continuationLine Continuation
line controlLine Control
linefeed in sourceWhitespace
linkCompilation
linking object filesCompilation
local labelsLocal Labels
local variablesLocal Variables
local variables in macrosMacros and Auto Type
logical operatorsLogical Operators
loop statementsLoop Statements
low level pointer arithmeticLow-Level Pointer Arithmetic
lvaluesLvalues

M
machine epsilon (floating point)Machine Epsilon
macro argument expansionArgument Prescan
macro arguments and directivesDirectives Within Macro Arguments
macrosMacros
macros in includeComputed Includes
macros with argumentsMacro Arguments
macros with variable argumentsVariadic Macros
macros, local labelsLocal Labels
macros, local variables inMacros and Auto Type
macros, types of argumentsAuto Type
main functionThe main Function
make rulesCompilation
manifest constantsObject-like Macros
maximum integer valuesMaximum and Minimum Values
memory allocation, dynamicDynamic Memory Allocation
memory organizationStorage
minimum integer valuesMaximum and Minimum Values
modifying assignmentModifying Assignment
modulusDivision and Remainder
multidimensional arraysMultidimensional Arrays
multiplication operatorBasic Arithmetic

N
NaN in floating-point arithmeticHandling NaN
NaNs-always-propagate ruleHandling NaN
negation operatorBasic Arithmetic
negation operator, logicalLogical Operators
negation, bitwiseBitwise Operations
nested blockBlocks
nested functionsNested Functions
newlineCharacter Constants
newline in sourceWhitespace
not a numberHandling NaN
not-equal operatorNumeric Comparisons
null directiveNull Directive
null pointersNull Pointers
null statementNull Statement
numbers, preprocessingPreprocessing Tokens
numeric comparisonsNumeric Comparisons

O
object fileCompilation
object-like macroObject-like Macros
offset of structure fieldsField Offset
old-style function definitionsOld-Style Function Definitions
omitting types in declarationsOmitting Types
operand execution orderingReordering of Operands
operand orderingOrdering of Operands
operand promotionsOperand Promotions
operator precedenceBinary Operator Grammar
operator, additionBasic Arithmetic
operator, commaComma Operator
operator, decrementIncrement/Decrement
operator, divisionBasic Arithmetic
operator, equalNumeric Comparisons
operator, greater-or-equalNumeric Comparisons
operator, greater-thanNumeric Comparisons
operator, incrementIncrement/Decrement
operator, less-or-equalNumeric Comparisons
operator, less-thanNumeric Comparisons
operator, multiplicationBasic Arithmetic
operator, negationBasic Arithmetic
operator, not-equalNumeric Comparisons
operator, postdecrementPostincrement/Postdecrement
operator, postincrementPostincrement/Postdecrement
operator, remainderDivision and Remainder
operator, subtractionBasic Arithmetic
operatorsOperators/Punctuation
operators, arithmeticArithmetic
operators, assignmentAssignment Expressions
operators, bitwiseBitwise Operations
operators, comparisonNumeric Comparisons
operators, logicalLogical Operators
operators, shiftShift Operations
operators, shiftShift Operations
optimization and orderingOptimization and Ordering
order of executionOrder of Execution
ordering and optimizationOptimization and Ordering
ordering and postincrementPostincrement and Ordering
ordering of operandsReordering of Operands
ordering of operandsOrdering of Operands
overflow, compiler optionsSigned Overflow
overflow, floatingException Flags
overflow, integerInteger Overflow
overlaying structuresOverlaying Structures

P
packed structuresPacked Structures
parameter forward declarationVariable-Length Array Parameters
parameter listFunction Parameter Variables
parameter variables in functionsFunction Parameter Variables
parameters lists, variable lengthVariable Number of Arguments
parameters, command-lineCommand-line Parameters
parentheses in macro bodiesOperator Precedence Problems
pitfalls of macrosMacro Pitfalls
pointer arithmeticPointer Arithmetic
pointer arithmetic, drawbacksPointer Arithmetic Drawbacks
pointer arithmetic, low-levelLow-Level Pointer Arithmetic
pointer comparisonPointer Comparison
pointer dereferencingPointer Dereference
pointer increment and decrementPointer Increment/Decrement
pointer type conversionAliasing
pointer-integer conversionPointer-Integer Conversion
pointersPointers
pointers and arraysPointers and Arrays
pointers to functionsFunction Pointers
pointers, declaringDeclaring Arrays and Pointers
pointers, nullNull Pointers
pointers, restrict-qualifiedrestrict Pointers
pointers, voidVoid Pointers
postdecrement expressionPostincrement/Postdecrement
postincrement and orderingPostincrement and Ordering
postincrement expressionPostincrement/Postdecrement
precedence, operatorBinary Operator Grammar
predecrement expressionIncrement/Decrement
predefined macrosPredefined Macros
preincrement expressionIncrement/Decrement
preprocessingPreprocessing
preprocessing directivesDirectives
preprocessing numbersPreprocessing Tokens
preprocessing operatorsPreproc Overview
preprocessing tokensPreprocessing Tokens
prescan of macro argumentsArgument Prescan
primitive typesPrimitive Types
printfComplete Explanation
problems with macrosMacro Pitfalls
promotion of argumentsArgument Promotions
prototype of a functionFunction Declarations
punctuationOperators/Punctuation

Q
QNaNSpecial Float Values
quote directoriesSearch Path

R
ranges in case statementsCase Ranges
ranges of integer typesMaximum and Minimum Values
recursionFunction Body
recursion, drawbacks ofStack
recursive Fibonacci functionRecursive Fibonacci
redefining macrosUndefining and Redefining Macros
referencing structure fieldsReferencing Fields
register declarationsauto and register
remainder operatorDivision and Remainder
reordering of operandsReordering of Operands
repeated inclusionOnce-Only Headers
reporting errorsDiagnostics
reporting warningsDiagnostics
representation of floating-point numbersFloating Representations
representation of integersInteger Representations
reserved wordsIdentifiers
restrict pointersrestrict Pointers
return (ASCII character)Character Constants
return statementreturn Statement
returning values from mainValues from main
round-trip base conversionRound-Trip Base Conversion
roundingRounding
rounding control (floating point)Rounding Control
rounding issues (floating point)Rounding Issues

S
scaling floating point by powers of the baseScaling by the Base
scopeScope
segmentation faultStack
self-referenceSelf-Referential Macros
semantics of function callsFunction Call Semantics
semicolons (after macro calls)Swallowing the Semicolon
sequence pointsSequence Points
shift countShift Operations
shift operatorsShift Operations
side effect in ?:Conditional Branches
side effects (in macro arguments)Duplication of Side Effects
SIGBUSSignals
SIGFPESignals
signalSignals
signed typesSigned and Unsigned Types
signed zeros in floating-point arithmeticSigned Zeros
significance loss (floating point)Significance Loss
SIGSEGVSignals
simple assignmentSimple Assignment
size of typeType Size
SNaNSpecial Float Values
space character in sourceWhitespace
special floating-point valuesSpecial Float Values
stackStack
stack frameStack
stack frameStack
stack overflowStack
standard outputComplete Explanation
statement, breakbreak Statement
statement, continuecontinue Statement
statement, dowhiledo-while Statement
statement, expressionExpression Statement
statement, forfor Statement
statement, gotogoto Statement
statement, ifif Statement
statement, ifelseif-else Statement
statement, nullNull Statement
statement, returnreturn Statement
statement, switchswitch Statement
statement, whilewhile Statement
statementsStatements
statements inside expressionsStatement Exprs
statements, loopLoop Statements
static assertionsStatic Assertions
static function, declarationStatic Functions
static functionsStatic Functions
static local variablesStatic Local Variables
sticky exception flags (floating point)Exception Flags
storage organizationStorage
stringStrings
string constantsString Constants
stringificationStringification
structure assignmentStructure Assignment
structure constructorsStructure Constructors
structure field offsetField Offset
structure fields, constantconst Fields
structure fields, referencingReferencing Fields
structure layoutStructure Layout
structuresStructures
structures, overlayingOverlaying Structures
structures, unnamedUnnamed Types as Fields
subexpressions, assignment inAssignment in Subexpressions
subnormal numbersSpecial Float Values
subtraction operatorBasic Arithmetic
successValues from main
switch statementswitch Statement
symbolic constantsObject-like Macros
system header filesHeader Files

T
tab (ASCII character)Character Constants
tab character in sourceWhitespace
tentative definitionAllocating File-Scope
thunksNested Functions
tokenLexical Syntax
token concatenationConcatenation
token pastingConcatenation
truncationInteger Conversion
truth valueNumeric Comparisons
two’s-complement representationInteger Representations
twosumError Recovery
type alignmentType Alignment
type conversion, pointerAliasing
type conversionsType Conversions
type designatorType Designators
type sizeType Size
type tagsType Tags
type, booleanBoolean Type
type, voidThe Void Type
typedef namesDefining Typedef Names
types of integer constantsInteger Const Type
types, compatibleCompatible Types
types, complexComplex Data Types
types, enumerationEnumeration Types
types, floating-pointFloating-Point Data Types
types, incompleteIncomplete Types
types, integerInteger Types
types, primitivePrimitive Types
types, signedSigned and Unsigned Types
types, unsignedSigned and Unsigned Types

U
uintptr_tPointer-Integer Conversion
undefining macrosUndefining and Redefining Macros
underflow, floatingSpecial Float Values
underflow, floatingException Flags
underscores in variables in macrosMacros and Auto Type
UnicodeCharacters
Unicode character codesUnicode Character Codes
union, casting to aCast to Union
unionsUnions
unions, unnamedUnnamed Types as Fields
universal character namesUnicode Character Codes
unnamed structuresUnnamed Types as Fields
unnamed unionsUnnamed Types as Fields
unsafe macrosDuplication of Side Effects
unsigned typesSigned and Unsigned Types
UTF-8 String ConstantsUTF-8 String Constants

V
va_copyVariable Number of Arguments
va_endVariable Number of Arguments
va_listVariable Number of Arguments
va_startVariable Number of Arguments
variable declarationsVariable Declarations
variable declarations, combiningCombining Variable Declarations
variable number of argumentsVariadic Macros
variable-length array parametersVariable-Length Array Parameters
variable-length arraysArrays of Variable Length
variable-length parameter listsVariable Number of Arguments
variablesVariables
variables, constconst
variables, file-scopeFile-Scope Variables
variables, globalFile-Scope Variables
variables, localLocal Variables
variables, local, in macrosMacros and Auto Type
variables, static localStatic Local Variables
variables, volatilevolatile
variadic functionVariable Number of Arguments
variadic macrosVariadic Macros
vertical tabCharacter Constants
vertical tab in sourceWhitespace
void pointersVoid Pointers
void typeThe Void Type
volatile variables and fieldsvolatile

W
while statementwhile Statement
whitespace characters in source filesWhitespace
wide character constantsWide Character Constants
wide string constantsWide String Constants
wrapper #ifndefOnce-Only Headers

Z
zero-length arraysZero Length
zero-origin indexingArray Example
zero, division byDivision and Remainder