овою програми після компіляції відповідало досить невелике число машинних команд, а використання базових елементів мови не задіяні бібліотеку часу виконання. Однопрохідний компілятор компілює програму, не повертаючись назад, до вже обробленому тексту. Тому використанню функції і змінних має передувати їх оголошення. Код на Сі можна легко писати на низькому рівні абстракції, майже як на асемблері. Іноді Сі називають В«універсальним асемблеромВ» або В«асемблером високого рівняВ», що відображає відмінність мов асемблера для різних платформ і єдність стандарту Сі, код якого може бути скомпільований без змін практично на будь-якої моделі комп'ютера. Сі часто називають мовою середнього рівня або навіть низького рівня, враховуючи те, як близько він працює до реальних пристроїв. Однак, в строгій класифікації, вона є мовою високого рівня. p align="justify"> Компілятори Сі розробляються порівняно легко завдяки простоті мови та малому розміру стандартної бібліотеки. Тому даний мова доступна на самих різних платформах (можливо, коло цих платформ ширше, ніж у будь-якого іншого існуючого мови). До того ж, незважаючи на свою низкоуровневую природу, мова дозволяє створювати стерпні програми і підтримує в цьому програміста. Програми, що відповідають стандарту мови, можуть компілюватися на самих різних комп'ютерах. p align="justify"> Сі (як і ОС UNIX, з якою він довгий час був пов'язаний) створювався програмістами і для програмістів, коло яких був би ненабагато ширше кола розробників мови. Незважаючи на це, область використання мови значно ширше завдань системного програмування. p align="justify"> Сі створювався з однією важливою метою: зробити більш простим написання великих програм з мінімумом помилок за правилами процедурного програмування, що не додаючи на підсумковий код програм зайвих накладних витрат для компілятора, як це завжди роблять мови дуже високого рівня, такі як Бейсік. З цього боку Сі має такі важливі особливості:
В· просту мовну базу, з якої винесені в бібліотеки багато суттєві можливості, начебто математичних функцій або функцій управління файлами;
В· орієнтацію на процедурне програмування, що забезпечує зручність застосування структурного стилю програмування;
В· систему типів, що охороняє від безглуздих операцій;
В· використання препроцесора для, наприклад, визначення макросів і включення файлів з вихідним кодом;
В· безпосередній доступ до пам'яті комп'ютера через використання покажчиків;
В· мінімальне число ключових слів;
В· передачу параметрів <# "justify"> Ось деякі особливості інших мов програмування, яких не має Сі:
В· авт...