ΠΠ°ΠΊ ΠΈ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ², ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π° ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΈΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» ΡΡΡΡΠ°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΈ Π² 1993 Π³. Π½Π°ΡΠ°Π» ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ°, Π½Π°Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ C9X. ΠΠΎΠΌΠΈΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π», Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π² 1994-1996 Π³Π³.
ΠΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π±ΡΠ»Π° ΡΠ΄Π΅Π»Π°Π½Π° Π² 1990 Π³Π³. ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΠ°Π»Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π‘99; ΠΎΠ½Π° Π±ΡΠ»Π° ΠΏΡΠΈΠ½ΡΡΠ° ISO ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡ ISO/IEC 9899:1999. ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΈΡΠ΅Ρ J11, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ·ΡΠΊΠ° Π‘ ΠΈ Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π³ΡΡΠΏΠΏΡ International Committee for Information Technology Standards (ΠΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠΌΠΈΡΠ΅Ρ ΠΏΠΎ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ Π² ΡΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ). ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠΈ Π‘ ΡΠΌ. Π½Π° Web-ΡΠ°ΠΉΡΠ΅ http://j11.incits.org/.
ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² GNU
ΠΠΎΡΠ»Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Emacs (Π΄Π°, ΠΌΡ Π»ΡΠ±ΠΈΠΌ Emacs) ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π²Π°ΠΆΠ½ΡΠΌ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° GNU, ΠΊΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π² Π³Π»Π°Π²Π΅ 1, ΡΡΠ°Π» ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘, gcc, ΠΏΠ΅ΡΠ²Π°Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π² 1987 Π³.
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠΌΡ gcc ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π»ΠΎΡΡ ΠΊΠ°ΠΊ GNU Π‘ Compiler (ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘ ΠΏΡΠΎΠ΅ΠΊΡΠ° GNU), Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±Π°Π·ΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΡΠ΅Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π‘++, Objective-C, FORTRAN, Java ΠΈ Ada, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ GNU Compiler Collection (ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² GNU).
gcc Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ» ΠΈ ΠΏΠΎΡ ΠΎΠΆΠ΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Π΄Π»Ρ Linux ΠΈ Π‘ ΠΈΠ»ΠΈ Π‘++, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² ΠΠ‘ Linux. ΠΡΡ ΠΎΠ΄Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ gcc ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://gcc.gnu.org/.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘ GNU Π²ΡΠ΅Π³Π΄Π° Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π» ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΡΠ·ΡΠΊΠ° Π‘, Ρ ΠΎΡΡ ΠΎΠ½ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ°, ΠΈ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΈ Ρ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ², ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ², ΡΠΎΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅, ΠΈ gcc ΠΏΡΠ΅Π΄Π²ΠΎΡΡ ΠΈΡΠ°Π΅Ρ ΡΠ»Π°Π±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°, ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ±ΠΈΠ²Π°ΡΡ Ρ ΡΠΎΠ»ΠΊΡ. Π£ gcc Π΅ΡΡΡ ΡΡΠ΄ ΠΎΠΏΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΡ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π·Π°Π΄Π°ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΡΠ·ΡΠΊΠ° Π‘, ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΏΡΠΈΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ΅ΠΏΠ΅Π½ΡΡ ΠΏΡΠΈΠ΄ΠΈΡΡΠΈΠ²ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΡΡΡΠΎΠ³ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
ΠΠΏΡΠΈΠΈ gcc
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ Π‘, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠΏΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ gcc Π΄Π»Ρ Π³Π°ΡΠ°Π½ΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΡΠ·ΡΠΊΠ° Π‘, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅. ΠΡΡΡ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠ΄ Π½Π° Π‘ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ·ΡΡΠ½ΠΎΠ²: ΠΎΠΏΡΠΈΠΈ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½Ρ Π΄ΠΎΠ±ΠΈΠ²Π°ΡΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈ ΠΎΠΏΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΈΠ½ΠΈΡΠΈΠΈΡΡΡΡΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π£ gcc Π΅ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΎΠΏΡΠΈΠΉ, ΠΈ Π·Π΄Π΅ΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π»ΠΈΡΡ ΡΠ΅ ΠΈΠ· Π½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°Π΅ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌΠΈ. ΠΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° gcc. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ #define, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ; ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΏΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ #include ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ gcc. ΠΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄ΠΈΠ²ΠΈΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΠΈΠ»ΠΈΠ΅ ΠΎΠΏΡΠΈΠΉ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ»Π°Π³Π°, Π·Π°ΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ. ΠΡΠΈΡΠΈΠ½Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠΈΠ²ΡΠ΅Π΅ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π°ΡΡ Π±Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ. Π Π΅Π΄ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ, Π²Π°ΠΌ Π·Π°Ρ ΠΎΡΠ΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π½Π°ΡΠ°Π» ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΎΠΏΡΠ΅ΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΈ Π½Π΅ ΡΠ°ΠΌΠ°Ρ ΡΠ²Π΅ΠΆΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΡΠ°ΠΊ ΡΠΆ Π²Π°ΠΆΠ½ΠΎ, ΡΠ°ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π²ΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ gcc, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈΡΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ Π΅ΡΠ΅ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅, ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ ΠΊΠΎΠ΄ Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅ ΠΈ Π½Π΅Π΄ΠΎΡΠΌΠ΅Π²Π°ΡΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π£ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ, ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΡ, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎ Π΅Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ ΠΈ ΡΠΈΠΏΠ°Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌΠΈ, ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ Π·Π°ΡΡΠ°ΡΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΈΠ»ΠΈΠΉ ΠΈ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π²ΠΎΠΎΠ±ΡΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠΏΡΡΡΠΈΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΈΠ²ΡΠΊΠ½ΠΈΡΠ΅ ΠΈΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΉ Π΄Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΡΠΈΡΠΊΡΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ. ΠΡΠ»ΠΈ Π²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Ρ Π²Π°ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ β ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΠΏΡΠΈΠ²ΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎΠΈΡ Π²Π·ΡΡΡ Π½Π° Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ²ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π΄Π°Π»Π΅Π΅ ΠΎΠΏΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ gcc Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅; ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌ Π·Π΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
β‘ -ansi β ΡΡΠΎ ΡΠ°ΠΌΠ°Ρ Π²Π°ΠΆΠ½Π°Ρ ΠΎΠΏΡΠΈΡ, ΠΊΠ°ΡΠ°ΡΡΠ°ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΈ Π·Π°ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ° ISO C90. ΠΠ½Π° ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ gcc, Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ, ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΡΡΠΈΠ»Π΅ Π‘++ (//) ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠΈΠ³ΡΠ°ΡΠΎΠ² (ΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ) ANSI. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΠΊΡΠΎΡ __STRICT_ANSI__, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ , Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ. Π ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΏΡΠΈΠ½ΡΡΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ.
β‘ -std= β ΡΡΠ° ΠΎΠΏΡΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ½ΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΡΠΎΡΠ½ΠΎ Π·Π°Π΄Π°ΡΡΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ:
β’ Ρ89 β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ C89;
β’ iso9899:1999β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ISO, C90;
β’ gnu89 β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ C89, Π½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ GNU ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ C99. Π Π²Π΅ΡΡΠΈΠΈ 4.2 gcc ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠΏΡΠΈΠΈ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°Ρ defineΠ‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ (#defines), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ ΠΎΠΏΡΠΈΡΠΌΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ Π΄Π»Ρ Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
β‘ __STRICT_ANSI__ β Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ Π‘ ISO. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π·Π°Π΄Π°Π½Π° ΠΎΠΏΡΠΈΡ -ansi.
β‘ _POSIX_C_SOURCE=2 β Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ IEEE Std 1003.1 ΠΈ 1003.2. ΠΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΡΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅.
β‘ _BSD_SOURCE β Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌ BSD. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ POSIX, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ BSD ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ.
β‘ _GNU_SOURCE β Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ GNU. ΠΡΠ»ΠΈ ΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ POSIX, Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ.
ΠΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉΠΡΠΈ ΠΎΠΏΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π ΡΠ½ΠΎΠ²Π° ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ Π»ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅, ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ gcc.
β‘ -pedantic β ΡΡΠ° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΡΡΠΎΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘. ΠΠΎΠΌΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ Π‘, ΠΎΠ½Π° ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ·ΡΠΊΠ° Π‘, Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ, ΠΈ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌΠΈ Π²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ GNU ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΡ. ΠΡΡ ΠΎΠΏΡΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Π‘. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π΅Π΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΠ·Π°Π±ΠΎΡΠ΅Π½ ΡΠΈΡΡΠΎΡΠΎΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈ ΠΏΠΎΡΠΎΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ»ΠΎΠΌΠ°ΡΡ Π³ΠΎΠ»ΠΎΠ²Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π΄Π΅Π»Π°ΡΡΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΡΡΠ°Π²ΡΠΈΠΌΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ.
β‘ -Wformat β ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° printf.
β‘ -Wparentheses β ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΊΠΎΠ±ΠΎΠΊ, Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ.
β‘ -Wswitch-default β ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠ° default Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ switch, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΡΠΈΠ»Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.