ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²: ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ: ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ_ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ opt ; if ( Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ if ( Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ else ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ while ( Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ do ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ while ( Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ) ; for ( ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ opt ; Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ opt ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ switch ( Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ case ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ : ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ default : ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ break ; continue ; return Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ opt ; goto ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ; ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ : ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
14.4 ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°: Π²Π½Π΅ΡΠ½Π΅Π΅_ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅Π΅_ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
Π²Π½Π΅ΡΠ½Π΅Π΅_ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_ΡΡΠ½ΠΊΡΠΈΠΈ: ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ opt ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ_ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ_Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ opt ΡΠ΅Π»ΠΎ_ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ_ΡΡΠ½ΠΊΡΠΈΠΈ: ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ( ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² )
ΡΠ΅Π»ΠΎ_ΡΡΠ½ΠΊΡΠΈΠΈ: ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ_ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ_Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ: : ( ΡΠΏΠΈΡΠΎΠΊ_ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ²_ΡΠ»Π΅Π½ΠΎΠ² opt )
14.5 ΠΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ
#define ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΡΠΎΠΊΠ°_Π»Π΅ΠΊΡΠ΅ΠΌ
#define ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ( ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ,...,ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ) ΡΡΡΠΎΠΊΠ° Π»Π΅ΠΊΡΠ΅ΠΌ #else #endif #if Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ #ifdef ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ #ifndef ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ #include Β«ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°Β» #include Β«ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°Β» #line ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Β«ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°Β» #undef ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
15. ΠΡΠ»ΠΈΡΠΈΡ ΠΎΡ C
15.1 Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ
Π’ΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π΄Π°Π½Ρ (#8.4) ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ (#7.1). ΠΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² (# 7.1).
ΠΠ»Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ»Π°Π²Π°ΡΡΠ°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ° ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ; #6.2.
ΠΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Ρ; #8.9.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Ρ; 7.16, #8.5.11.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ inline-ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ; #8.1.
ΠΠ±ΡΠ΅ΠΊΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠΌΠΈ (const); #8.3.
ΠΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°; #8.4, #8.6.3
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ new ΠΈ delete ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ, #7.2.
ΠΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΎΠΊΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ (#8.5.9), Π³ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (#8.6.2), ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²ΡΠ΅Π»Π΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·Π²Π°Π½ΠΈΡ (#8.5.6), ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ (#8.5.4).
ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΈΠΏΠ°; #8.5.
ΠΡΠ±ΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ void* Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊ ΡΠΈΠΏΡ; #7.14.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ; #9.14.
ΠΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ; #8.5.13.
15.2 Π‘Π²ΠΎΠ΄ΠΊΠ° Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ C Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ Π² Π‘++ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡ ΡΠΌΡΡΠ»Π°. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ²
class const delete friend inline new operator overload public signed this virtual volatile
ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ f(); ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ f Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠ°ΡΠΌΠ΅ΡΡΠΎΠ², Π² C ΠΆΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ f ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
Π C Π²Π½Π΅ΡΠ½Π΅Π΅ ΠΈΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, Π° Π² Π‘+ + ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
ΠΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π‘++ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅, ΡΡΠΎ ΠΈ ΠΏΡΠΎΡΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΡΠΎΠ΄Π΅
int s; struct s (* /* ... */ *); f() (* s = 1; *)
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΠΈΠ½ΡΡΠ²Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ class, struct, union, enum (#8.2) ΠΈΠ»ΠΈ :: (#7.1). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
int s; struct s (* /* ... */ *); void f() (*int s; struct s a; *) void g() (* ::s = 1; *)
15.3 ΠΠ½Π°Ρ ΡΠΎΠ½ΠΈΠ·ΠΌΡ
ΠΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ C ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠ°ΠΊ Π‘++ ΠΏΡΠΎΡΠ°ΠΌΠΌ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
ΠΡΠ΅ΠΆΠ½Π΅Π΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π²ΡΠ·ΠΎΠ²Π΅. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠΌΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠ²Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊ
ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ int Ρ ΡΠΈΠΏΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (...).
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ void ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠ°ΠΊ ΡΡΠΎ (void) ΡΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ().
ΠΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² C
ΡΡΠ°ΡΠΎΠ΅_ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅_ΡΡΠ½ΠΊΡΠΈΠΈ: ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ opt ΡΡΠ°ΡΡΠΉ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ_ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ ΡΠ΅Π»ΠΎ_ΡΡΠ½ΠΊΡΠΈΠΈ
ΡΡΠ°ΡΡΠΉ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ_ΡΡΠ½ΠΊΡΠΈΠΈ: ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ (* ΡΠΏΠΈΡΠΎΠΊ_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² *)
ΡΠΏΠΈΡΠΎΠΊ_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²: ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ , ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
max(a,b) (* return (aΒ«b) ? b : a; *)
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ ΠΊΠ°ΠΊ ΡΡΠ°, Π±ΡΠ»Π° ΡΠ°Π½Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½Π°, ΡΠΈΠΏ Π΅Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΡΡ (...), ΡΠΎ Π΅ΡΡΡ, Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΉ. ΠΡΠ»ΠΈ ΠΎΠ½Π° Π±ΡΠ»Π° ΠΎΠΏΠΈΡΠ°Π½Π°, Π΅Π΅ ΡΠΈΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°ΡΡΡΡ Ρ ΡΠΈΠΏΠΎΠΌ ΠΎΠΏΠΈΡΠ½ΠΈΡ.
ΠΠΌΠ΅ΡΡΠΎ :: ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΡΠΊΠ° Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
int cl.fct() (* /* ... */ *)
ΠΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.