Tutorial Downloads .com

Home

C / C++ Language Reference | PDF study material

The C/C++ Language Reference describes the syntax, semantics, and IBM implementation of the C and C++ programming languages. Syntax and semantics constitute a complete specification of a programming language, but complete implementations can differ because of extensions. The IBM implementations of Standard C and Standard C++ attest to the organic nature of programming languages, reflecting pragmatic considerations and advances in programming techniques, which are factors that influence growth and change. The extensions in IBM C and C++ also reflect the changing needs of modern programming environments.

Contents
About This Reference . . . . . . . . vii
The IBM Language Extensions. . . . . . . . viii
FeaturesRelatedtoGNUCandC++ . . . . viii
Highlighting Conventions. . . . . . . . . . ix
How to Read the Syntax Diagrams. . . . . . . ix
Chapter 1. Scope and Linkage . . . . . 1
Scope. . . . . . . . . . . . . . . . . 1
LocalScope. . . . . . . . . . . . . . 3
Function Scope . . . . . . . . . . . . 3
Function Prototype Scope . . . . . . . . . 3
Global Scope . . . . . . . . . . . . . 3
ClassScope. . . . . . . . . . . . . . 4
Name Spaces of Identifiers . . . . . . . . 4
NameHiding . . . . . . . . . . . . . 5
Program Linkage. . . . . . . . . . . . . 6
Internal Linkage . . . . . . . . . . . . 7
External Linkage . . . . . . . . . . . . 7
No Linkage. . . . . . . . . . . . . . 8
Linkage Specifications — Linking to Non-C++
Programs . . . . . . . . . . . . . . . 8
NameMangling . . . . . . . . . . . . 9
Chapter 2. Lexical Elements . . . . . 11
Tokens . . . . . . . . . . . . . . . . 11
Source Program Character Set . . . . . . . . 11
EscapeSequences . . . . . . . . . . . 12
The Unicode Standard. . . . . . . . . . 13
TrigraphSequences. . . . . . . . . . . 13
Multibyte Characters . . . . . . . . . . 14
Comments. . . . . . . . . . . . . . . 14
Identifiers . . . . . . . . . . . . . . . 16
Reserved Identifiers . . . . . . . . . . 16
Case Sensitivity and Special Characters in
Identifiers . . . . . . . . . . . . . . 17
Predefined Identifiers . . . . . . . . . . 17
Keywords. . . . . . . . . . . . . . 18
Alternative Tokens . . . . . . . . . . . 19
Literals. . . . . . . . . . . . . . . . 19
BooleanLiterals . . . . . . . . . . . . 20
Integer Literals . . . . . . . . . . . . 20
Floating-Point Literals. . . . . . . . . . 23
Character Literals . . . . . . . . . . . 24
String Literals . . . . . . . . . . . . 25
Compound Literals. . . . . . . . . . . 26
Chapter 3. Declarations . . . . . . . 29
Declaration Overview . . . . . . . . . . . 29
Variable Attributes . . . . . . . . . . . 30
Tentative Definitions . . . . . . . . . . 31
Objects . . . . . . . . . . . . . . . . 32
Storage Class Specifiers . . . . . . . . . . 32
auto Storage Class Specifier . . . . . . . . 33
extern Storage Class Specifier . . . . . . . 34
mutable Storage Class Specifier. . . . . . . 36
register Storage Class Specifier . . . . . . . 36
static Storage Class Specifier. . . . . . . . 37
typedef. . . . . . . . . . . . . . . 39
Type Specifiers . . . . . . . . . . . . . 40
TypeNames . . . . . . . . . . . . . 40
Type Attributes . . . . . . . . . . . . 42
CompatibleTypes . . . . . . . . . . . 42
Simple Type Specifiers. . . . . . . . . . 43
Compound Types . . . . . . . . . . . 48
ComplexTypes . . . . . . . . . . . . 64
Type Qualifiers . . . . . . . . . . . . . 65
The volatile Type Qualifier . . . . . . . . 67
The const Type Qualifier . . . . . . . . . 68
The restrict Type Qualifier . . . . . . . . 69
The asm Declaration . . . . . . . . . . . 70
Incomplete Types . . . . . . . . . . . . 70
Chapter 4. Declarators . . . . . . . . 72
Initializers. . . . . . . . . . . . . . . 73
Pointers . . . . . . . . . . . . . . . 73
Declaring Pointers . . . . . . . . . . . 74
Assigning Pointers . . . . . . . . . . . 75
Initializing Pointers. . . . . . . . . . . 75
Using Pointers . . . . . . . . . . . . 76
Pointer Arithmetic . . . . . . . . . . . 76
Arrays . . . . . . . . . . . . . . . . 78
Declaring Arrays . . . . . . . . . . . 79
Initializing Arrays . . . . . . . . . . . 83
Function Specifiers . . . . . . . . . . . . 86
References. . . . . . . . . . . . . . . 87
Initializing References . . . . . . . . . . 87
Chapter 5. Expressions and Operators 89
Operator Precedence and Associativity . . . . . 89
Lvalues and Rvalues . . . . . . . . . . . 93
Primary Expressions . . . . . . . . . . . 94
Identifier Expressions . . . . . . . . . . 95
Integer Constant Expressions . . . . . . . 96
Parenthesized Expressions ( ) . . . . . . . 96
C++ScopeResolutionOperator ::. . . . . . 97
Postfix Expressions. . . . . . . . . . . . 98
Function Call Operator ( ) . . . . . . . . 98
Array Subscripting Operator [ ] . . . . . . 100
DotOperator .. . . . . . . . . . . . 102
ArrowOperator −> . . . . . . . . . . 102
ThetypeidOperator . . . . . . . . . . 102
static_cast Operator . . . . . . . . . . 104
reinterpret_cast Operator . . . . . . . . 105
const_castOperator . . . . . . . . . . 106
dynamic_cast Operator . . . . . . . . . 107
Unary Expressions. . . . . . . . . . . . 109
Increment++ . . . . . . . . . . . . 109
Decrement−− . . . . . . . . . . . . 110
Unary Plus + . . . . . . . . . . . . 110

Unary Minus −. . . . . . . . . . . . 111
LogicalNegation!. . . . . . . . . . . 111
BitwiseNegation~ . . . . . . . . . . 111
Address & . . . . . . . . . . . . . 111
Indirection *. . . . . . . . . . . . . 112
alignof Operator . . . . . . . . . . . 113
sizeofOperator. . . . . . . . . . . . 113
typeofOperator . . . . . . . . . . . 115
C++newOperator . . . . . . . . . . 115
C++ delete Operator . . . . . . . . . . 119
Cast Expressions . . . . . . . . . . . . 120
Binary Expressions . . . . . . . . . . . 121
Multiplication *. . . . . . . . . . . . 122
Division / . . . . . . . . . . . . . 122
Remainder% . . . . . . . . . . . . 123
Addition + . . . . . . . . . . . . . 123
Subtraction − . . . . . . . . . . . . 124
BitwiseLeftandRightShift<<>> . . . . . 124
Relational < > <= >=. . . . . . . . . . 125
Equality == != . . . . . . . . . . . . 126
BitwiseAND&. . . . . . . . . . . . 127
BitwiseExclusiveOR^ . . . . . . . . . 128
BitwiseInclusiveOR| . . . . . . . . . 128
LogicalAND&& . . . . . . . . . . . 129
LogicalOR|| . . . . . . . . . . . . 129
C++ Pointer to Member Operators .* −>* . . . 130
Conditional Expressions. . . . . . . . . . 130
Type of Conditional C Expressions . . . . . 131
Type of Conditional C++ Expressions . . . . 132
Examples of Conditional Expressions . . . . 132
Assignment Expressions. . . . . . . . . . 132
SimpleAssignment=. . . . . . . . . . 133
Compound Assignment . . . . . . . . . 134
Comma Expressions . . . . . . . . . . . 135
C++ throw Expressions . . . . . . . . . . 136
Chapter 6. Implicit Type Conversions 137
IntegralandFloating-PointPromotions. . . . . 137
Standard Type Conversions. . . . . . . . . 138
Lvalue-to-Rvalue Conversions. . . . . . . 139
Boolean Conversions. . . . . . . . . . 139
Integral Conversions . . . . . . . . . . 139
Floating-Point Conversions. . . . . . . . 140
Pointer Conversions . . . . . . . . . . 140
Reference Conversions . . . . . . . . . 142
Pointer-to-Member Conversions . . . . . . 142
Qualification Conversions . . . . . . . . 142
Function Argument Conversions . . . . . . 143
Other Conversions . . . . . . . . . . 143
Arithmetic Conversions . . . . . . . . . . 144
The explicit Keyword. . . . . . . . . . . 145
Chapter 7. Functions . . . . . . . . 147
C++ Enhancements to C Functions . . . . . . 147
Function Declarations . . . . . . . . . . 148
C++ Function Declarations . . . . . . . . 150
Function Attributes . . . . . . . . . . 151
Examples of Function Declarations . . . . . 153
Function Definitions . . . . . . . . . . . 154
Ellipsis and void . . . . . . . . . . . 157
Examples of Function Definitions. . . . . . 157
The main() Function . . . . . . . . . . . 159
Argumentstomain . . . . . . . . . . 159
Example of Arguments to main . . . . . . 160
Calling Functions and Passing Arguments. . . . 161
Passing Arguments by Value . . . . . . . 162
Passing Arguments by Reference. . . . . . 163
DefaultArgumentsinC++Functions . . . . . 164
Restrictions on Default Arguments . . . . . 165
Evaluating Default Arguments . . . . . . 166
Function Return Values . . . . . . . . . . 166
Using References as Return Types . . . . . 167
AllocationandDeallocationFunctions . . . . . 167
Pointers to Functions. . . . . . . . . . . 169
InlineFunctions . . . . . . . . . . . . 169
Chapter 8. Statements . . . . . . . 173
Labels. . . . . . . . . . . . . . . . 173
Locally Declared Labels . . . . . . . . . 174
Expression Statements . . . . . . . . . . 174
Resolving Ambiguous Statements in C++ . . . 175
BlockStatement . . . . . . . . . . . . 175
ifStatement . . . . . . . . . . . . . . 176
switch Statement . . . . . . . . . . . . 178
whileStatement . . . . . . . . . . . . 182
doStatement . . . . . . . . . . . . . 183
forStatement . . . . . . . . . . . . . 183
breakStatement . . . . . . . . . . . . 185
continueStatement . . . . . . . . . . . 186
returnStatement . . . . . . . . . . . . 187
Value of a return Expression and Function Value 188
gotoStatement . . . . . . . . . . . . . 189
NullStatement. . . . . . . . . . . . . 190
Chapter 9. Preprocessor Directives 191
Preprocessor Overview . . . . . . . . . . 191
Preprocessor Directive Format. . . . . . . . 192
Macro Definition and Expansion (#define). . . . 192
Object-Like Macros . . . . . . . . . . 193
Function-LikeMacros . . . . . . . . . 193
Scope of Macro Names (#undef) . . . . . . . 197
#Operator . . . . . . . . . . . . . . 198
Macro Concatenation with the ## Operator . . . 199
Preprocessor Error Directive (#error). . . . . . 199
Preprocessor Warning Directive (#warning) . . 199
FileInclusion(#include). . . . . . . . . . 200
Specialized File Inclusion (#include_next) . . . . 201
ISO Standard Predefined Macro Names . . . . 201
Conditional Compilation Directives . . . . . . 202
#if, #elif . . . . . . . . . . . . . . 204
#ifdef . . . . . . . . . . . . . . . 204
#ifndef . . . . . . . . . . . . . . 205
#else . . . . . . . . . . . . . . . 205
#endif. . . . . . . . . . . . . . . 206
Examples of Conditional Compilation Directives 206
Line Control (#line) . . . . . . . . . . . 206
Null Directive (#) . . . . . . . . . . . . 207
Pragma Directives (#pragma) . . . . . . . . 208
Standard Pragmas. . . . . . . . . . . 208

The _Pragma Operator . . . . . . . . . 209
Chapter 10. Namespaces . . . . . . 211
Defining Namespaces. . . . . . . . . . . 211
Declaring Namespaces . . . . . . . . . . 211
CreatingaNamespaceAlias . . . . . . . . 211
Creating an Alias for a Nested Namespace . . . 212
ExtendingNamespaces . . . . . . . . . . 212
Namespaces and Overloading. . . . . . . . 213
Unnamed Namespaces . . . . . . . . . . 213
Namespace Member Definitions . . . . . . . 215
Namespaces and Friends . . . . . . . . . 215
Using Directive. . . . . . . . . . . . . 216
The using Declaration and Namespaces . . . . 217
Explicit Access . . . . . . . . . . . . . 217
Chapter 11. Overloading. . . . . . . 219
Overloading Functions . . . . . . . . . . 219
Restrictions on Overloaded Functions . . . . 220
Overloading Operators . . . . . . . . . . 222
Overloading Unary Operators. . . . . . . 223
Overloading Binary Operators. . . . . . . 224
Overloading Assignments . . . . . . . . 224
Overloading Function Calls. . . . . . . . 226
Overloading Subscripting . . . . . . . . 227
Overloading Class Member Access . . . . . 228
Overloading Increment and Decrement. . . . 228
OverloadResolution . . . . . . . . . . . 229
Implicit Conversion Sequences . . . . . . 230
Resolving Addresses of Overloaded Functions 231
Chapter 12. Classes . . . . . . . . 233
Declaring Class Types . . . . . . . . . . 233
Using Class Objects . . . . . . . . . . 234
Classes and Structures . . . . . . . . . . 236
ScopeofClassNames . . . . . . . . . . 237
Incomplete Class Declarations. . . . . . . 237
Nested Classes . . . . . . . . . . . . 238
Local Classes . . . . . . . . . . . . 240
LocalTypeNames. . . . . . . . . . . 241
Chapter 13. Class Members and
Friends . . . . . . . . . . . . . . 243
Class Member Lists . . . . . . . . . . . 243
DataMembers . . . . . . . . . . . . . 244
MemberFunctions . . . . . . . . . . . 245
const and volatile Member Functions . . . . 246
VirtualMemberFunctions . . . . . . . . 246
Special Member Functions . . . . . . . . 247
MemberScope . . . . . . . . . . . . . 247
Pointers to Members . . . . . . . . . . . 248
ThethisPointer . . . . . . . . . . . . 251
StaticMembers. . . . . . . . . . . . . 253
Using the Class Access Operators with Static
Members. . . . . . . . . . . . . . 253
StaticDataMembers . . . . . . . . . . 254
StaticMemberFunctions . . . . . . . . 256
Member Access. . . . . . . . . . . . . 258
Friends . . . . . . . . . . . . . . . 260
Friend Scope . . . . . . . . . . . . 262
Friend Access . . . . . . . . . . . . 264
Chapter 14. Inheritance . . . . . . . 265
Derivation . . . . . . . . . . . . . . 267
Inherited Member Access . . . . . . . . . 270
Protected Members . . . . . . . . . . 270
Access Control of Base Class Members. . . . 271
The using Declaration and Class Members . . . 272
Overloading Member Functions from Base and
Derived Classes . . . . . . . . . . . 273
Changing the Access of a Class Member . . . 275
Multiple Inheritance . . . . . . . . . . . 277
Virtual Base Classes . . . . . . . . . . 278
Multiple Access . . . . . . . . . . . 279
Ambiguous Base Classes . . . . . . . . 279
VirtualFunctions . . . . . . . . . . . . 283
Ambiguous Virtual Function Calls . . . . . 286
Virtual Function Access . . . . . . . . . 288
Abstract Classes . . . . . . . . . . . . 288
Chapter 15. Special Member
Functions . . . . . . . . . . . . . 291
Constructors and Destructors Overview . . . . 291
Constructors. . . . . . . . . . . . . . 293
DefaultConstructors . . . . . . . . . . 293
Explicit Initialization with Constructors . . . 294
Initializing Base Classes and Members . . . . 296
Construction Order of Derived Class Objects 299
Destructors . . . . . . . . . . . . . . 300
FreeStore . . . . . . . . . . . . . . 303
Temporary Objects . . . . . . . . . . . 307
User-Defined Conversions . . . . . . . . . 308
Conversion by Constructor. . . . . . . . 310
Conversion Functions. . . . . . . . . . 311
Copy Constructors . . . . . . . . . . . 312
Copy Assignment Operators . . . . . . . . 313
Chapter 16. Templates . . . . . . . 318
Template Parameters . . . . . . . . . . . 318
Type Template Parameters . . . . . . . . 318
Non-Type Template Parameters . . . . . . 319
TemplateTemplateParameters . . . . . . 319
Default Arguments for Template Parameters . . 320
TemplateArguments. . . . . . . . . . . 320
TemplateTypeArguments . . . . . . . . 321
TemplateNon-TypeArguments . . . . . . 321
TemplateTemplateArguments . . . . . . 323
ClassTemplates . . . . . . . . . . . . 326
Class Template Declarations and Definitions . . 326
StaticDataMembersandTemplates. . . . . 326
MemberFunctionsofClassTemplates . . . . 327
FriendsandTemplates . . . . . . . . . 327
Function Templates . . . . . . . . . . . 328
Template Argument Deduction . . . . . . 330
Overloading Function Templates . . . . . . 335
Partial Ordering of Function Templates. . . . 336
TemplateInstantiation . . . . . . . . . . 337
Implicit Instantiation . . . . . . . . . . 337
Explicit Instantiation . . . . . . . . . . 338
Template Specialization . . . . . . . . . . 339
Explicit Specialization . . . . . . . . . 339

Partial Specialization . . . . . . . . . . 344
Name Binding and Dependent Names . . . . . 347
ThetypenameKeyword. . . . . . . . . . 348
The Keyword template as Qualifier . . . . . . 348
Chapter 17. Exception Handling . . . 351
ThetryKeyword . . . . . . . . . . . . 351
Nested Try Blocks. . . . . . . . . . . 353
catchBlocks. . . . . . . . . . . . . . 353
Function try block Handlers . . . . . . . 354
ArgumentsofcatchBlocks. . . . . . . . 357
Matching between Exceptions Thrown and
Caught . . . . . . . . . . . . . . 357
OrderofCatching. . . . . . . . . . . 358
The throw Expression . . . . . . . . . . 359
RethrowinganException . . . . . . . . 360
StackUnwinding . . . . . . . . . . . . 361
Exception Specifications. . . . . . . . . . 362
Special Exception Handling Functions . . . . . 365
unexpected() . . . . . . . . . . . . 365
terminate() . . . . . . . . . . . . . 366
set_unexpected() and set_terminate() . . . . 367
Example of Using the Exception Handling
Functions. . . . . . . . . . . . . . 368
Appendix A. The IBM C Language
Extensions . . . . . . . . . . . . 371
Orthogonals. . . . . . . . . . . . . . 371
Existing IBM C Extensions with Individual
Option Controls . . . . . . . . . . . 371
IBM C Extensions: C99 Features as Extensions to
C89. . . . . . . . . . . . . . . . 371
IBMCExtensionsRelatedtoGNUC . . . . 372
Non-Orthogonals . . . . . . . . . . . . 373
Existing IBM C Extensions with Individual
Option Controls . . . . . . . . . . . 373
IBM C Extensions: C99 Features as Extensions to
C89. . . . . . . . . . . . . . . . 373
IBMCExtensionsRelatedtoGNUC . . . . 374
Appendix B. The IBM C++ Language
Extensions . . . . . . . . . . . . 375
Orthogonals. . . . . . . . . . . . . . 375
IBM C++ Extensions for Compatibility with C99 375
IBM C++ Extensions Related to GNU C . . . 376
IBM C++ Extensions Related to GNU C++ . . 376
Non-Orthogonals . . . . . . . . . . . . 376
IBM C++ Extensions for Compatibility with C99 376
IBM C++ Extensions Related to GNU C . . . 377
Notices . . . . . . . . . . . . . . 379
Programming Interface Information . . . . . . 381
TrademarksandServiceMarks . . . . . . . 381

Industry Standards . . . . . . . . . . . 381
Index
Special Characters
__cdecl 169
__func__ 17
__inline__ 18
__typeof__ keyword 115
__VA_ARGS__ identifier 194
_Pragma 209
- (subtraction operator) 124
- (unary minus operator) 111
-- (decrement operator) 110
-> (arrow operator) 102
, (comma operator) 134
:: (scope resolution operator) 97
! (logical negation operator) 111
!= (not equal to operator) 126
? : (conditional operators) 130
/ (division operator) 122
/= (compound assignment
operator) 133
. (dot operator) 102
$ 11, 17
* (indirection operator) 112
* (multiplication operator) 122
*= (compound assignment operator) 133
\ continuation character 26, 192
\ escape character 12
[ ] (array subscript operator) 100
% (remainder) 123
> (greater than operator) 125
>> (right-shift operator) 124
>>= (compound assignment
operator) 133
>= (greater than or equal to
operator) 125
< (less than operator) 125
<< (left-shift operator) 124
<<= (compound assignment
operator) 133
<= (less than or equal to operator) 125
| (bitwise inclusive OR operator) 128
|| (logical OR operator) 129
& (address operator) 111
& (bitwise AND operator) 127
& (reference declarator) 87
&& (logical AND operator) 128
&= (compound assignment
operator) 133
# preprocessor directive character 192
# preprocessor operator 197
## (macro concatenation) 198
+ (addition operator) 123
+ (unary plus operator) 110
++ (increment operator) 109
+= (compound assignment
operator) 133
= (simple assignment operator) 133
== (equal to operator) 126
^ (bitwise exclusive OR operator) 127
^= (compound assignment
operator) 133
~ (bitwise negation operator) 111
A
aborting functions 367
abstract classes 286, 288
access
base classes 271
friends 264
members 258
multiple 279
private 258, 271
protected 258, 271
protected members 270
public 258, 271
specifiers 258, 271
virtual function 288
access specifiers 244, 258
in private derivation 272
in public derivation 272
accessibility 258, 279
addition operator (+) 123
address operator (&) 111
lvalue cast 120
aggregate types 40, 294
initialization 51, 294
alignment
bit fields 54, 55
structure members 50
alignof operator 18, 113
allocation expressions 115
allocation functions 167
alternative representations
operators and punctuators 19
ambiguities
base classes 278, 279
resolving 175
virtual functions 286
AND operator, bitwise (&) 127
AND operator, logical (&&) 128
argc (argument count) 159
example 160
arguments
default 164
evaluation 166
macro 193
main function 159
of catch blocks 357
passing 147, 161
passing by reference 163
passing by value 162
trailing 194
argv (argument vector) 159
example 160
arithmetic conversions 144
arithmetic types 43
type compatibility 42
arrays
array-to-pointer conversions 141
as function parameter 79
class members 244
declaration 79
description 78
flexible array member 48, 50
arrays
(continued)
initialization 83
initializing 81
static keyword in array index
declaration 79
static keyword in declaration 38
subscripting operator 100
type compatibility 79
variable length 41, 81
ASCII character codes 12
asm 18, 70
assignment operator (=)
compound 133
simple 133
associativity of operators 89
atexit function 366
auto storage class specifier 33
B
base classes
abstract 288
access 271
ambiguities 278, 279
description 267
direct 277
indirect 277
initialization 296
multiple 277
multiple access 279
pointers to 269, 270
virtual 278, 282
base list 267, 277
best viable function 230
binary expressions 121
binary operators 121
binding virtual functions 283
bit fields 54
as structure member 50
type name 115
bitwise negation operator (~) 111
block statement 175
block visibility 3
boolean
conversions 139
literals 20
variables 43
brackets [ ] 100
break statement 185
C
candidate functions 219, 230
case label 178
cast expressions 120
catch blocks 351, 353
argument matching 357
order of catching 358

char type specifier 44
character
data types 44
literals 24
multibyte 14, 26
character set
extended 14
source 11
class
key 233
keyword 233
in private derivation 272
names 237
object 32
class member lists 243
class members 243
access operators 102
ambiguities 281
initialization 296
class templates
declaration and definition 326
distinction from
template class 324
explicit specialization 343
member functions 327
static data members 326
classes 236
abstract 288
class objects 32
class templates 324
declarations 233
derivation 267
friends 260
incomplete declarations 237
inheritance 265
local 240
member access 258
member functions 245
member lists 243
member scope 247
nested 238, 262
overview 233
polymorphic 233
scope of names 237
static members 253
this pointer 250
using declaration 272
virtual 283
virtual base 278
virtual member functions 283
Classic C vii
comma
in enumerator list 61
comma expressions 134
comma operator 134
comments 14
compatible types
across source files 42
arithmetic types 42
arrays 79
in conditional expressions 131
complex type 64
composite types 42
across source files 42
compound
assignment 133
expression 134
literal 20, 26, 98
statement 175
compound
(continued)
types 48
concatenation
multibyte characters 26
conditional compilation directives 202
elif preprocessor directive 204
else preprocessor directive 205
endif preprocessor directive 206
examples 206
if preprocessor directive 204
ifdef preprocessor directive 204
ifndef preprocessor directive 205
conditional expression (? :) 130, 134
const 68
casting away constness 163
function attribute 152
member functions 246
object 92
placement in type name 41
qualifier 66
vs. #define 192
const_cast 106, 163
constant expressions 61, 96
constant initializers 243
constructors 293
converting 145, 310
copy 312
default 293
exception handling 361
initialization
explicit 294
initializer list 155
nontrivial 293, 301
overview 291
trivial 293, 301
continuation character 26, 192
continue statement 186
conversion
constructors 310
function 311
implicit conversion sequences 230
conversion sequence
ellipsis 231
implicit 230
standard 231
user-defined 231
conversions
argument expressions 161
arithmetic 144
array-to-pointer 141
boolean 139
cast 120
derived class 282
derived-to- base 141
explicit keyword 145
floating-point 140
function arguments 143
function-to-pointer 141
integral 139
lvalue-to-rvalue 93, 139, 231
pointer 140
pointer to member 142
qualification 142
references 142
standard 138
user-defined 308
void pointer 141
copy assignment operators 313
copy constructors 312
covariant virtual functions 285
CPLUSPLUS macro 202
cv-qualifier 50, 65, 72
D
data members
description 244
scope 247
static 254
DATE macro 201
deallocation expressions 119
deallocation functions 167
decimal integer literals 21
declarations
class
description 233
incomplete 237
syntax 233
description 29
friend 260, 264
function
resolving ambiguities 175
pointers to members 248
resolving ambiguous statements 175
syntax 29, 41
unsubscripted arrays 81
declarative region 1
declarators
description 71
reference 87
decrement operator (−−) 110
default
clause 178, 179
constructors 293
label 179
define preprocessor directive 192
defined unary operator 204
definitions
description 29
macro 192
member function 245
tentative 31
delete operator 119
dependent names 347
dereferencing operator 112
derivation
array type 78
derived class objects
construction order 299
derived classes
base list 267
catch block 358
description 267
pointers to 269, 270
designated initializer
aggregate types 51, 83
union 57
designator 51, 83
designation 51, 83
designator list 51, 83
union 57
destructors 300
exception handling 361

overview 291
destructors
(continued)
pseudo 102, 302
direct base class 277
direct binding 88
division operator (/) 122
do statement 183
dollar sign 11, 17
dot operator 102
double type specifier 45
downcast 108
dynamic binding 283
dynamic_cast 107
E
EBCDIC character codes 12
elaborated type specifier 237
elif preprocessor directive 204
ellipsis
conversion sequence 231
in function declaration 149
in function definition 157
in macro argument list 194
else clause 176
else preprocessor directive 205
enclosing class 262
end of string 26
endif preprocessor directive 206
enum keyword 61, 63
enumeration 61
declaration 61
enumerations
compatibility 42, 61
enumerator 61
equal to operator (==) 126
error preprocessor directive 199
escape character \ 12
escape sequence 12
alarm \a 12
backslash \\ 12
backspace \b 12
carriage return \r 12
double quotation mark \
12
form feed \f 12
horizontal tab \t 12
new-line \n 12
question mark \? 12
single quotation mark \’ 12
vertical tab \v 12
exception handling 351
argument matching 357
catch blocks 353
arguments 357
constructors 361
destructors 361
example, C++ 368
exception objects 351
function try blocks 351
handlers 351, 353
order of catching 358
rethrowing exceptions 360
set_terminate 367
set_unexpected 367
special functions 365
stack unwinding 361
terminate function 366
throw expressions 353, 359
exception handling
(continued)
try blocks 351
try exceptions 354
unexpected function 365
exceptions
declaration 353
function try block handlers 354
specification 155, 362
exclusive OR operator, bitwise (^) 127
explicit
function specifier 86
instantiation, templates 338
keyword 145, 310
specializations, templates 339, 341
type conversions 120
exponent 23
expressions
allocation 115
assignment 132
cast 120
comma 134
conditional 130
deallocation 119
description 89
full 89
integer constant 96
new initializer 117
parenthesized 96
pointer to member 130
primary 94
resolving ambiguous statements 175
statement 174
throw 136, 359
unary 109
extern inline
keyword 35, 170
extern storage class specifier 9, 34, 170
with function pointers 169
with variable length arrays 81
F
file inclusion 200, 201
FILE macro 201
file scope data declarations
unsubscripted arrays 81
flexible array member 50
float type specifier 45
floating types 65
floating-point
constant 23
conversion 140
literal 22
promotion 137
for statement 183
free store 303
delete operator 119
new operator 115
friends
access 264
description 260
implicit conversion of pointers 272
member functions 245
nested classes 262
relationships with classes when
templates are involved 327
scope 262
friends
(continued)
virtual functions 286
function attributes 151
function designator 93
function specifier
explicit 145, 310
function templates
explicit specialization 342
function try blocks 155, 351
handlers 354
function-like macro 193
functions 147
allocation 167
arguments 99, 147, 148
conversions 143
block 147
body 147
C++ enhancements 147
calling 161
calls 98
as lvalue 93
class templates 327
conversion function 311
deallocation 167
declaration 147, 148
C++ 150
examples 153
exception specification 149
multiple 150
parameter names 151
default arguments 164
evaluation 166
restrictions 165
definition 147, 148, 154
constructor initializer list 155
declarator 154
examples 157
exception specification 155
return type 154
scope 154
storage class specifier 154
type specifier 154
diagnostics
__func__ 17
exception specification 362
friend 260
function call operator 147
function templates 328
function-to-pointer conversions 141
inline 35, 169, 245
library functions 147
main 159
overloading 219
parameters 70, 99, 148, 161
pointers to 169
prototype 147, 149
return statements 187
return type 147, 155, 166, 167
return value 147, 166
signature 147
specifiable attributes 151
specifiers 86, 169
template function
template argument deduction 330
type name 41

virtual 246, 283, 286
G
goto statement 189
restrictions 189
greater than operator (>) 125
greater than or equal to operator
(>=) 125
H
handlers 353
hexadecimal
floating constants 23
integer literals 21
hidden names 235, 237
I
identifiers 16, 94
case sensitivity 17
id-expression 72, 95
labels 173
name space 4
predefined 17
reserved 16, 18
special characters 11, 17
if preprocessor directive 204
if statement 176
ifdef preprocessor directive 204
ifndef preprocessor directive 205
imaginary type 64
imaginary unit 65
implementation dependency
allocation of floating-point types 45
allocation of integral types 46
class member allocation 244
implicit conversion 137
boolean 139
lvalue 93
pointer to object of a derived
class 272
types 137
implicit instantiation
templates 337
implicit int 155, 158
include preprocessor directive 200
include_next preprocessor directive 201
inclusive OR operator, bitwise (|) 128
incomplete type 70, 78
as structure member 48, 50
class declaration 237
increment operator (++) 109
indentation of code 192
indirect base class 277
indirection operator (*) 112
information hiding 1, 3, 243
inheritance
graph 278, 279
multiple 277
overview 265
initialization
base classes 296
class members 296
static data members 256
union member 57
initializations
aggregate types 51
initializations
(continued)
references 142
initializer lists 296
initializers 72
aggregate types 51, 83
initializer list 72
unions 57
inline
function specifier 86, 170
functions 169
description 245
keyword 18, 35
integer
constant expressions 61, 96
conversions 139
data types 46
literals 20
integral
conversion 139
promotion 137
K
K&R C vii
keywords 18
exception handling 351
language extension 18
template 317, 348
underscore characters 18
L
label
implicit declaration 3
in switch statement 179
locally declared 174
statement 173
language extension viii, 18
C 371, 373
C++ 375, 376
C99 371
GNU C viii, 371
left-shift operator (<<) 124
less than operator (<) 125
less than or equal to operator (<=) 125
LINE macro 201
line preprocessor directive 206
linkage 1, 6
auto storage class specifier 34
const cv-qualifier 68
extern storage class specifier 9, 35
external 7
in function definition 155
inline functions 170
inline member functions 246
internal 7, 37
language 8
multiple function declarations 150
none 8
register storage class specifier 37
specifications 8
static storage class specifier 38
with function pointers 169
linking to non-C++ programs 8
literals 19
boolean 20
literals
(continued)
character 24
compound 20, 26, 98
floating-point 22
integer 20
data types 20
decimal 21
hexadecimal 21
octal 22
string 25
local
classes 240
type names 241
logical AND operator (&&) 128
logical negation operator (!) 111
logical OR operator (||) 129
long double type specifier 45
long long type specifier 46
long type specifier 46
lvalues 65, 92, 94
casting 120
conversions 93, 139, 231
M
macro
definition 192
typeof operator 115
function-like 193
invocation 193
object-like 193
variable argument 194
main function 159
arguments 159
example 160
member access 258
changing member access 275
member declarations 244
member functions
const and volatile 246
definition 245
description 245
special 247
static 256
this pointer 250, 288
member lists 234, 243
members
access 258
arrays 244
class member access operators 102
data 244
inherited 267
pointers to 130, 248
protected 270
scope 247
static 239, 253
virtual functions 246
modifiable lvalue 92, 132, 133
modulo operator (%) 123
multibyte character 14
concatenation 26
multicharacter literal 24
multiple
access 279
inheritance 277
multiplication operator (*) 122

mutable storage class specifier 36
N
name binding 347
name hiding 5, 97
ambiguities 280
name resolution 3
name space
class names 237
context 5
of identifiers 4
names
conflicts 4
hidden 97, 235, 237
local type 241
mangling 9
namespaces 211
alias 211, 212
declaring 211
defining 211
explicit access 217
extending 212
friends 215
member definitions 215
overloading 213
unnamed 213
user-defined 2
using declaration 217
using directive 216
narrow character literal 24
nested classes
friend scope 262
scope 238
new operator
default arguments 165
description 115
initializer expression 117
placement syntax 117
set_new_handler function 118
non-orthogonal language extensions
C 373
C++ 376
not equal to operator (!=) 126
null character \0 26
NULL pointer 76
null pointer constants 141
null preprocessor directive 207
null statement 190
number sign (#)
preprocessor directive character 192
preprocessor operator 197
O
object-like macro 193
objects 92
base class 278
class
declarations 234
description 32
lifetime 1
restrict-qualified pointer 69
octal integer literals 22
one’s complement operator (~) 111
operator functions 221
operators
- (subtraction) 124
-- (decrement) 110
operators
(continued)
-> (arrow) 102
->* (pointer to member) 130
, (comma) 134
:: (scope resolution) 97
! (logical negation) 111
!= (not equal to) 126
? : (conditional) 130
/ (division) 122
. (dot) 102
.* (pointer to member) 130
() (function call) 98, 147
* (indirection) 112
* (multiplication) 122
− (unary minus) 111
[] (array subscripting) 100
% (remainder) 123
> (greater than) 125
>> (right- shift) 124
>= (greater than or equal to) 125
< (less than) 125
<< (left- shift) 124
<= (less than or equal to) 125
| (bitwise inclusive OR) 128
|| (logical OR) 129
& (address) 111
& (bitwise AND) 127
&& (logical AND) 128
+ (addition) 123
++ (increment) 109
= (simple assignment) 133
== (equal to) 126
^ (bitwise exclusive OR) 127
alternative representations 19
assignment 132
copy assignment 313
associativity 89
binary 121
bitwise negation operator (~) 111
compound assignment 133
const_cast 106
defined 204
delete 119, 305
dynamic_cast 107
equality 126
expressions 98
new 115, 303
operators 98
overloading 221
binary 224
unary 223
pointer to member 130, 248
precedence 89
examples 92
type names 41
preprocessor
# 197
## 198
pragma 209
reinterpret_cast 105
relational 125
scope resolution 268, 279, 286
sizeof 113
static_cast 104
typeid 102
typeof 115
unary 109
operators
(continued)
unary plus operator (+) 110
OR operator, logical (||) 129
orthogonal language extensions
C 371
C++ 375
overload resolution 229
ambiguities 282
resolving addresses of overloaded
functions 231
overloading
delete operator 305
description 219
function templates 335
functions 219
declaration 150
restrictions 220
new operator 303
operators 221, 233
assignment 224
binary 224
class member access 228
decrement 228
function call 226
increment 228
subscripting 227
unary 223
overriding virtual functions 287
P
packed
structure member 54
parenthesized expressions 41, 96
pass by reference 87, 163
pass by value 162
placement syntax 117
pointer to member
conversions 142
declarations 248
operators 130
pointers
compatibility 74
const 68
conversions 140
ambiguities 282
description 73
generic 141
pointer arithmetic 76
restrict-qualified 69
this 250
to functions 169
to members 130, 248
void* 140
polymorphic classes 233, 284
postfix expressions 98
postfix operators 98
pound sign (#)
preprocessor directive character 192
preprocessor operator 197
pragma operator 109, 209
pragmas
_Pragma 209
preprocessor directive 208
standard 208

precedence of operators 89
predefined macros
CPLUSPLUS 202
DATE 201
FILE 201
LINE 201
STDC 202
STDC_HOSTED 202
STDC_VERSION 202
TIME 202
prefix
hexadecimal floating constants 23
hexadecimal integer literals 21
octal integer literals 22
preprocessor directives 191
conditional compilation 202
preprocessing overview 191
special character 192
preprocessor operator
# 197
## 198
primary expressions 94
private derivation 272
private keyword 258
program entry point 159
promotion
integral and floating-point 137
promotions
function argument values 161
protected keyword 258
protected member access 270
prototype 149
pseudo-destructors 102
public derivation 272
public keyword 258
punctuators 11
alternative representations 19
pure specifier 243, 246, 286, 288
pure virtual functions 288
Q
qualification conversions 142
qualified
type name 239
qualified names 97
qualifiers
const 66
restrict 69
volatile 66, 67
R
references
as return types 167
conversions 142
declarator 112
description 87
direct binding 88
initialization 87
register storage class specifier 36
reinterpret_cast 105
remainder operator (%) 123
restrict 67, 69
return statement 166, 187
value 188
return type
reference as 167
size_t 113
right-shift operator (>>) 124
RTTI support 102, 103, 107
rvalues 92
S
scalar types 40, 73
scope 1
class 4
class names 237
description 1
enclosing and nested 3
friend 262
function 3
function prototype 3
global 3
global namespace 4
identifiers 4
local (block) 3
local classes 240
macro names 197
member 247
nested classes 238
scope resolution operator
ambiguous base classes 279
description 97
inheritance 268
virtual functions 286
sequence point 89, 135
set_new_handler function 118
set_terminate function 367
set_unexpected function 365, 367
shift operators << and >> 124
short type specifier 46
side effect 67, 89
signed type specifiers
char 44
int 46
long 46
long long 46
simple type specifiers 43
char 44
wchar_t 44
size_t 113
sizeof operator 113
with variable length arrays 81
space character 192
special characters 11
special functions
used in exception handling 365
special member functions 247
specifiers
access 258, 271
class 233
inline 86, 169
pure 246
storage class 32
virtual 86
splice preprocessor directive ## 198
stack unwinding 361
Standard C vii
standard conversions 137
standard type conversions 138
statements 173
statements
(continued)
block 175
break 185
continue 186
do 183
expressions 174
for 183
goto 189
if 176
labels 173
null 190
resolving ambiguities 175
return 166, 187
selection 176, 178
switch 178
while 182
static
data members 254
in array declaration 79
in array index declaration 38
initialization of data members 256
member functions 256
members 239, 253
storage class specifier 37
with variable length arrays 81
static binding 283
static_cast 104
STDC macro 202
STDC_HOSTED macro 202
STDC_VERSION macro 202
storage class specifiers 32, 154
auto 33
extern 34
mutable 36
register 36
static 37
storage duration 1
auto storage class specifier 34
extern storage class specifier 35
register storage class specifier 36
static 37
string literals 25
stringize preprocessor directive # 197
struct type specifier 49
structure
as base class 272
identifier (tag) 49
member 50
structures 48, 236
alignment 53
as class type 233
compatibility 42, 49, 54
embedded pragma directives 54
flexible array member 48, 50
initialization 51
members
alignment 50
incomplete types 50
layout in memory 51
packed 54
padding 50
name spaces within 5
nesting 54
packed 50
type attributes 42

unnamed members 52
subscript declarator
in arrays 79
subscripting operator 78, 100
in type name 41
subtraction operator (−) 124
suffix
floating-point literals 22
hexadecimal floating constants 23
integer literal constants 20
switch statement 178
T
tags
enumeration 61
structure 49, 50
union 58
template arguments 320
deduction 330
deduction, non-type 334
deduction, type 332
non-type 321
template 323
type 321
template keyword 348
templates
arguments
non-type 321
type 321
class
declaration and definition 326
distinction from
template class 324
explicit specialization 343
member functions 327
static data members 326
declaration 317
dependent names 347
explicit specializations 339, 341
class members 341
declaration 340
definition and declaration 341
function templates 342
function
argument deduction 334
overloading 335
partial ordering 336
function templates 328
type template argument
deduction 332
instantiation 317, 337, 339
explicit 338
implicit 337
name binding 347
parameters 318
default arguments 320
non-type 319
template 319
type 318
partial specialization 344
matching 346
parameter and argument lists 346
point of definition 347
point of instantiation 348
relationship between classes and their
friends 327
scope 341
specialization 317, 337, 339
temporary objects 307, 357
terminate function 351, 353, 358, 361,
365, 366
set_terminate 367
this pointer 68, 250, 288
throw expressions 136, 351, 359
argument matching 357
rethrowing exceptions 360
within nested try blocks 353
TIME macro 202
tokens 11, 191
alternative representations for
operators and punctuators 19
translation unit 1
trigraph sequences 13
truncation
integer division 122
try blocks 351
nested 353
try keyword 351
type attributes 42
type name 40
local 241
typename keyword 348
typeof operator 115
type qualifiers
const 65, 68
const and volatile 72
in structure member definition 50
restrict 65, 67, 69
volatile 65
type specifier 40
(long) double 45
char 44
complex 64
elaborated 237
enumeration 61
float 45
imaginary 64
int 46
long 46
long long 46
short 46
unsigned 46
wchar_t 44, 46
typedef specifier
and type compatibility 42
class declaration 241
description 39
local type names 241
pointers to members 249
qualified type name 239
with variable length arrays 81
typeid operator 102
typename keyword 348
typeof operator 18, 115
types
aggregates 40
compatible 42
composite 42
compound 48
conversions 120
enumerated 61
floating 65
scalar 40
variably modified 80
U
unary expressions 109
unary operators 109
minus (−) 111
plus (+) 110
undef preprocessor directive 197
underscore character 11, 16, 18
unexpected function 351, 365, 366
set_unexpected 367
Unicode 13
unions 57
alignment 53
as class type 233
compatibility 42, 54, 57
designated initializer 51
embedded pragma directives 54
initialization 57
nesting 54
specifier 58
type attributes 42
unnamed members 52
universal character name 13, 16, 24, 25
unnamed namespaces 213
unsigned type specifiers
char 44
int 46
long 46
long long 46
short 46
unsubscripted arrays
description 79, 81
user-defined conversions 308
using declarations 217, 272
ambiguities 281
changing member access 275
overloading member functions 273
using directive 216
V
variable length array 70, 81, 189
as structure member 50
as union members 57
sizeof 96, 113
type name 41
variably modified types 50, 57, 80, 81,
180
size evaluation 161
virtual
base classes 278, 282
function specifier 86
functions
access 288
ambiguous calls to 286
description 283
overriding 287
pure 288
member functions 246
visibility 1, 5
block 3
class members 258
void 47
argument type 157
in function definition 155, 157

pointer 140, 141
volatile
member functions 246
qualifier 66, 67
W
warning preprocessor directive 199
wchar_t type specifier 25, 44, 46
while statement 182
white space 14, 191, 192, 197
wide character literals 24

wide string literal 26

  Read this C / C++ Language Reference PDF study material


Resource: http://www.ess.uci.edu/esmf/ibm_compiler_docs/sc094958.pdf
Posted By : valessa
On date : 07.10.08

Most used CPP Tutorials

CPP ( C++ ) Interview Questions & ANswers
What is encapsulation , What is inheritance , What is Polymorphism, What is constructor or ctor, What is destructor, When are copy constructors called, What is conversion constructor, What is Memory alignment, What is a dangling pointer, What is overloading, What is a Make file
C++ Tutorials ( Ebooks pdf files )
ANSI/ISO C++ Professional Programmer's Handbook ,C++ Essentials (PDF),More C++(PDF) ,C++ QUICK REFERENCE
C++ Tutorial. For Beginners
This usage-oriented online C++ tutorial is intended to help you get your C++ experience on the right foot. Using some Macromedia Flash animations where needed, you will find here all the required information to get efficiently started on your usage of C++ language, independently of the platform you are planning to use it on. After a short introduction aimed at getting you started with the required tools to write and build C++ code source into executable binaries, you will get thrown into the basics of C++ and its control structures, as an algorithmic starting point. Still oriented on the usability, you will be pointed, along with detailed explanations, to the C-style standard functions that can be used in your C++ source code to easien usual tasks. The tutorial will then lead you into the Object Oriented paradigm on C++ language, which will be a must-have in order to understand all the STL(Standard Template Library)-related info that you will find in the last part of this tutorial. After having followed this tutorial, you will be perfectly able to develop and understand Command-line applications written in C++.
A Complete C++ ( CPP ) Tutorial
This is a beginners tutorial on C++ programming. It covers object oriented programming and some C++ basics. You may also check out the C Programming tutorial to learn more on data types, loops, functions, etc. because this is almost similar to C++.
How to Program an 8-bit Microcontroller Using C language (C++ PDF)
This C++ tutorial covers the details of How to Program an 8-bit Microcontroller Using C language. In this PDF covers the Traditional,most 8-BIT embedded Programs have been written in assembly language however, due to a variety of reasons.
MPLAB MCC18 C-PROGRAMMING TUTORIAL
This C++ tutorial covers the details of MPLAB MCC18 C-PROGRAMMING TUTORIAL.IN this PDF covers Basic rules for programming in C,The structure of the program,Variable types,ETC....
C++ Language Tutorial
This tutorial is for those people who want to learn programming in C++ and do not necessarily have any previous knowledge of other programming languages. Of course any knowledge of other programming languages or any general computer skill can be useful to better understand this tutorial, although it is not essential. It is also suitable for those who need a little update on the new features the language has acquired from the latests standards. If you are familiar with the C language, you can take the first 3 parts of this tutorial as a review of concepts, since they mainly explain the C part of C++. There are slight differences in the C++ syntax for some C features, so I recommend you its reading anyway. The 4th part describes object-oriented programming. The 5th part mostly describes the new features introduced by ANSI-C++ standard.
MPLAB C18 C COMPILER USER’S GUIDE | PDF syudy material
This document discusses the technical details of the MPLAB® C18 compiler. This document will explain all functionality of the MPLAB C18 compiler. It assumes that the programmer already: • knows how to write C programs • knows how to use the MPLAB Integrated Development Environment (IDE) to create and debug projects • has read and understands the processor data sheet for which code is being written
C / C++ Language Reference | PDF study material
The C/C++ Language Reference describes the syntax, semantics, and IBM implementation of the C and C++ programming languages. Syntax and semantics constitute a complete specification of a programming language, but complete implementations can differ because of extensions. The IBM implementations of Standard C and Standard C++ attest to the organic nature of programming languages, reflecting pragmatic considerations and advances in programming techniques, which are factors that influence growth and change. The extensions in IBM C and C++ also reflect the changing needs of modern programming environments.
C Programming Tutorial (C++ PDF)
This C++ tutorial covers the details of C Programming Tutorial.IN This tutorial Every program is limited by the language which is used to write it. C is a programmer’s language. Unlike BASIC or Pascal, C was not written as a teaching aid, but as an implementation language. C is a computer language and a programming tool which has grown popular because programmers like it! It is a tricky language but a masterful one.
C/C++ Language Reference (C++ PDF)
This C++ tutorial covers the details of C/C++ Language Reference.In this PDF couers the C/C++ Language Reference describes the syntax, semantics, and IBM implementation of the C and C++ programming languages. Syntax and semantics constitute a complete specification of a programming language, but complete implementations can differ because of extensions. The IBM implementations of Standard C and Standard C++ attest to the organic nature of programming languages, reflecting pragmatic considerations and advances in programming techniques, which are factors that influence growth and change. The extensions in IBM C and C++ also reflect the changing needs of modern programming environments.
Accelerated C++ Practical Programming by Example
If you don't have a lot of time, but still want to learn the latest in C++, you don't have to learn C first. You might learn more by digging into current language features and classes from the very beginning. That's the approach that's offered by Accelerated C++, a text that delves into more advanced C++ features like templates and Standard Template Library (STL) collection classes early on. This book arguably can get a motivated beginning programmer into C++ more quickly than other available tutorials.
C/C++ Language Reference(C++ PDF )
This C++ tutorial covers the details of C/C++ Language Reference.In this PDF couers theC/C++ Language Reference describes the syntax, semantics, and IBM implementation of the C and C++ programming languages. Syntax and semantics constitute a complete specification of a programming language, but conforming implementations of a language specification can differ because of language extensions. The IBM implementations of C and C++ attest to the organic nature of programming languages, reflecting pragmatic considerations and advances in programming techniques. The language extensions to C and C++ reflect the changing needs of modern programming environments.
Effective C++ 55 Specific Ways to Improve Your Programs and Designs
This exceptionally useful text offers Scott Myers's expertise in C++ class design and programming tips. The second edition incorporates recent advances to C++ included in the ISO standard, including namespaces and built-in template classes, and is required reading for any working C++ developer.
MPLAB MCC18 C-PROGRAMMING TUTORIAL | PDF study material
This study guide describes the details of MPLAB MCC18 C-PROGRAMMING.

Latest added CPP Tutorials

The C++ Standard Library Tutorial and Reference
Programming with the C++ Standard Library can certainly be difficult, but Nicolai Josuttis's The C++ Standard Library provides one of the best available guides to using the built-in features of C++ effectively.
Accelerated C++ Practical Programming by Example
If you don't have a lot of time, but still want to learn the latest in C++, you don't have to learn C first. You might learn more by digging into current language features and classes from the very beginning. That's the approach that's offered by Accelerated C++, a text that delves into more advanced C++ features like templates and Standard Template Library (STL) collection classes early on. This book arguably can get a motivated beginning programmer into C++ more quickly than other available tutorials.
Learn Objective C on the Mac Tutorial Book
Take your coding skills to the next level with this extensive guide to Objective–C, the native programming language for developing sophisticated software applications for Mac OS X.
Effective C++ 55 Specific Ways to Improve Your Programs and Designs
This exceptionally useful text offers Scott Myers's expertise in C++ class design and programming tips. The second edition incorporates recent advances to C++ included in the ISO standard, including namespaces and built-in template classes, and is required reading for any working C++ developer.
C++ Primer Plus -5th edition tutorial Book
If you are new to C++ programming, C++ Primer Plus, Fifth Edition is a friendly and easy-to-use self-study guide.
C Programming Language - Tutorial Book
By using this Book any one can easily learn C Programming Language.This is the amazon review about this book "Just about every C programmer I respect learned C from this book. Unlike many of the 1,000 page doorstops stuffed with CD-ROMs that have become popular, this volume is concise and powerful (if somewhat dangerous) -- like C itself. And it was written by Kernighan himself. Need we say more?"
A C-language binding for PSL (C++ PDF)
This C++ tutorial covers the details of A C-language binding for PS.In this PDF covers the Assertions Based Verification (ABV) is an approach that is used by hardware design engineers to specify the functional properties of logic designs. Two popular languages based on ABV are the Property Specification Language PSL and the System- Verilog Assertion system SVA [1]. PSL is now an IEEE standard – P1850 [2]. PSL specifications can be used both for the design and for the verification processes. A single language can be used first for the functional specification of the design and later on as an input to the tools that verify the implementation. The backbone of PSL is Temporal Logic [3], [4]. Temporal Logic can describe the execution of systems in terms of logic formulas augmented by time-sequencing operators.
Objective-C Language and GNUstep Base Library Programming Manual (c++ pdf)
This C++ tutorial covers the details of Objective-C Language and GNUstep Base Library Programming Manual. In this PDF covers the aim of this manual is to introduce you to the Objective-C language and the GNUstep development environment, in particular the Base library. The manual is organised to give you a tutorial introduction to the language and APIs, by using examples whenever possible, rather than providing a lengthy abstract description. While Objective-C is not a diffcult language to learn or use, some of the terms may be unfamiliar, especially to those that have not programmed using an object-oriented programming language before. Whenever possible, concepts will be explained in simple terms rather than in more advanced programming terms, and comparisons to other languages will be used to aid in illustration.
How to Program an 8-bit Microcontroller Using C language (C++ PDF)
This C++ tutorial covers the details of How to Program an 8-bit Microcontroller Using C language. In this PDF covers the Traditional,most 8-BIT embedded Programs have been written in assembly language however, due to a variety of reasons.
PTU C Language Programmers Interface Model PTU-CPI
This C++ tutorial covers the details of PTU C Language Programmers Interface Model PTU-CPI.In this PDF couers the PTU C Language Interface (PTU-CPI) allows you to write custom programs that directly control PTU-D46-xx and PTU-D300-xx pan-tilts. Some feature highlights of the C Language Interface include: