, , f(a, (t=3,t+2), c); , 5. R.5.19 - ++ , , : ($$R.8.2.4), case ($$R.6.4.2), ($$R.9.6) ($$R.7.2). -: - - : ($$R.2.5), , const, - ($$R.8.4) sizeof. ($$R.2.5.3) . . , , , sizeof. -. R.6  , , . : - - - - - - - R.6.1  . -: : case - : default : . goto. , . . goto . . case default . R.6.2 - ; : -: opt ; - . - . - . , ({) while ($$R.6.5.1). R.6.3  , , ( ""). -: { - opt } -: - , ($$R.6.7). R.6.4  . -: if ( ) if ( ) else switch ( ) - . R.6.4.1 if , , , ($$R.12.3). , , . else 0, . else else if, else. R.6.4.2  . , ($$R.12.3). . , : case - : - ($$R.5.19) . case . default: , case default , . , (case). , , . , default, . default , , . , , - , " case default" . break (. $$R.6.6.1). , , . . , , , , (.. , $$R.6.7). , . R.6.5  . -: while ( ) do while () for ( - opt ; opt ) -: - - , - . - . R.6.5.1 while while , . . , , , ($$R.12.3). R.6.5.2 do do , . . , , , ($$R.12.3). R.6.5.3 for for for (- -1 opt ; -2 opt ) - while (-1) { -2 ; } , continue for -2 & -1. , , , , , , , . , , , ($$R.12.3). . -1, while while (1). - , , , , for. R.6.6  . -: break ; continue ; return opt ; goto ; ( ) ($$R.12.4) , , . , ($$R.12.2). R.6.6.1 break break , . , , . R.6.6.2 continue continue , .. . , : while (foo) { do { for (;;) { // ... // ... // ... contin: ; contin: ; contin: ; } } while (foo); } continue, , goto contin. R.6.6.3 return return. return , , .. , void, ($$R.12.1) ($$R.12.4). return , . , . , , return, . ($$R.12.2). , , . R.6.6.4 goto goto , . ($$R.6.1), . R.6.7  : -: , , , , . (auto) (register) , -. , , ($$R.6.6). , , . , Index j i: for (int i = 0; i<100; i++) for (Index j = 0; j<100; j++) { // ... } , , , , , , . , . , , , , (.. ) , . , void f() { // ... goto lx; //: , // ... ly: X a = 1; // ... lx: goto ly; // , // `a' } , , , . , if (i) for (int j = 0; j<100; j++) { // ... } if (j!=100) // : // ... ; static ($$R.7.1.1) , . , -, , ($$R.8.4). , . , atexit() ($$R.3.4). R.6.8  , - , , -, , ($$R.5.2.3), , (. . , - . . , T - -- ($$R.7.1.6), T(a)->m = 7; // - T(a)++; // - T(a,5)<<c; // - T(*e)(int); // T(f)[]; // T(g) = {1, 2 }; // T(*d)(double(3)); // . , T(a); // T(*b)(); // T(c)=7; // T(d),e,f=3; // T(g)(h,2); // , .. , - . - , , ($$R.6.3) -, : void g() { int f(); // int a; // f(); // - a; // - } R.7  ; , , . : - opt - opt ; -asm - - - ($$R.8) . - ($$R.8.3) . - , ($$R.9) ($$R.7.2), .. - - -. -asm $$R.7.3, - $$R.7.4. ($$R.3.2), $$R.10.4. R.7.1  : -: -- - -fct -- friend typedef -: - opt - -, , , , -. , . , typedef char* Pc; static Pc; // : static Pc , Pc. int Pc, - int, , () Pc typedef, Pc -, , void f(const Pc); // void f(char* const) void g(const int Pc); // void g(const int) , signed, unsigned, long short int, -typedef, , () , , void h(unsigned Pc); // void h(unsigned int) void k(unsigned int Pc); // void k(unsigned int) R.7.1.1  : --: auto register static extern auto register , ($$R.6.3), ($$R.8.3). auto , , auto , - - ($$R.6.2). register auto, , . , , . , extern ($$R.3.1). ($$R.8.4). static extern . static static extern. $$R.9.4. extern . static . , const, , . extern , . -- , const. , , inline static ($$R.3.3). , , . , static char* f(); // f() char* f() // f() { /* ... */ } char* g(); // g() static char* g() // : { /* ... */ } static int a; // `a' int a; // : static int b; // `b' extern int b; // `b' int c; // `c' static int c; // : extern int d; // `d' static int d; // : extern. , , , , struct S; extern S a; extern S f(); extern void g(S); void h() { g(a); // : S f(); // : S } R.7.1.2  . -fct: inline virtual inline , . . , , inline ($$R.3.3). ($$R.5.2.2, $$R.8.2.5), , inline. - inline , . - inline , . inline , , inline . class X { public: int f(); inline int g(); // X::g() int h(); }; void k(X* p) { int i = p->f(); // X::f() int j = p->g(); // ... } inline int X::f() // : // inline { // ... } inline int X::g() { // ... } inline int X::h() // X::h() { // ... } virtual - (. $$R.10.2). R.7.1.3 typedef typedef , . typedef - ($$R.8.3). -typedef: ($$R.3.2) typedef , , , , $$R.8. , -typedef . ($$R.9.1) -typedef . , typedef int MILES, *KLICKSP; MILES distance; extern KLICKSP metricp; , distance int, metricp " int". typedef , , , , , , typedef struct s { /* ... */ } s; typedef int I; typedef int I; typedef I I; , typedef, , typedef, , typedef struct { /* .... */ } S; // S typedef , , , , , class complex { /* ... */ }; typedef int complex; // : , , , , , , typedef int complex; class complex { /* ... */ }; // : -typedef, , - ($$R.9.1). : class, struct union, , , struct S { S(); ~S(); }; typedef struct S T; S a = T(); // struct T* p; // R.7.1.4  (. $$R.14). R.7.1.5 friend friend (. $$R.11.4). R.7.1.6  : -: -- - - -- :: - const volatile const volatile -. -. const , . const, extern, ($$R.8.4, $$R.12.1). const, -, - ($$R.5.19). const , , , const const ($$R.9.3.1). , const, , . , , const. volatile. , , , . volatile , , volatile volatile ($$R.9.3.1). - , int. --: -- -- char short int long signed unsigned float double void int long short. , , int. long double. char, short, int long signed unsigned. , , int. signed , char , . - - $$R.9 $$R.7.2 . --: -- - -- --: class struct union , -- - (. $$R.9.1). , union, . , class, class struct. , struct, class struct. ($$R.9.7) : --: -typedef - :: -- --: -- :: -- --: - - :: -- , - , . , , , (. $$R.3.2). R.7.2  ($$R.3.6.1) -. -, .. . -: -: enum opt { - } -: - - , - -: = - - , . =, . =, , , . int , int ($$R.4.1). . . , , ( ). , enum { a, b, c=0 }; enum { d, e, f=e+2 }; a, c, d 0, b e 1, f 3. , . . ($$R.4.1). , : enum color { red, yellow, green=20, blue }; color col = red; color* cp = &col; if (*cp == blue ) // ... color , , col , cp . color red, yellow, green, blue. 0, 1, 20 21. - , color color, , color c = 1; // : // int color int i = yellow; // : yellow int 1 // $$R.18.3. , ($$R.9), , - ($$R.5.1). ($$R.9.7), , class X { public: enum direction { left='l', right='r' }; int f(int i) { return i==left ? 0 : i==right ? 1 : 2; } }; void g(X* p) { direction d; // : `direction' int i; // i = p->f(left); // : `left' i = p->f(X::right); // // ... } R.7.3 asm asm : -asm: asm ( -) ; asm . . R.7.4  - ($$R.3.3) ++ : -: extern - { - opt } extern - -: - -. . ("") ++ ("++"). "++", , complex sqrt(complex); // C++ extern "C" { double sqrt(double); // C } . . - ($$R.3.2). - , , , . -, , , . , , . -, , .. -. - . , , , . ($$R.13) , . $$R.7.4. , : extern "C" { // ... _iobuf_iob[_NFILE]; // ... int _flsbuf(unsigned,_iobuf*); // ... } , { }. . , , , , extern, , ($$R.7.1.1): extern "C" double f(); static double f(); // , extern "C" { /* ... */ } , . ++ , , , . , . - - , , , , , Ada ( ADA) Fortran ( FORTRAN). R.8  -, , - , . -: -- - , -- --: opt : (-; . $$R.7.1) (-). , . , , , , * ( ) () ( ). , $$R.8.4 $$R.12.6. : : -- -ptr (--) --cv opt [ - opt] ( ) -ptr: * --cv opt & --cv opt -- :: * --cv opt --cv: const volatile --: - ~- -typedef -- - , :: ($$R.12.1, $$R.12.4). R.8.1  sizeof new. -, , . -: -- - opt --: - -- -: -ptr - opt - opt ( -- ) - cv opt - opt [ - opt ] ( - ) , - , , . , . , int // int i int * // int *pi int *[3] // int *p[3] int (*)[3] // int (*p3i)[3] int *() // int *f() int (*)(double) // int (*pf)(double) : "", " ", " 3 ", " 3 ", " , ", " double, ". R.8.1.1  , $$R.6.8, - , , , . , , , , . , , , . , , = , , struct S { S(int); }; void foo(double a) { S x(int(a)); // S y((int)a); // S z = int(a); // } R.8.2  ( ) - ($$R.7.1). --, . ($$R.12.3, $$R.13.4), -- . auto, static, extern, register, friend, inline, virtual typedef -- . -- - ($$R.7.1), . , T D T , D - . D , T. , D ( D1 ) D1 , D.