Яка різниця між глобальними та зовнішніми змінними в C?

2024 Від admin

Глобальні змінні оголошуються та визначаються в одному модулі, файлі чи програмі (якщо у вас є програма, написана в одному файлі). І зовнішні змінні визначені в одному модулі та оголошені в іншому модулі. Отже, основна різниця полягає в області дії обох типів. 21 грудня 2017 р

Ключове слово extern є використовується для оголошення змінної, яка визначена в іншому місці. Як і у випадку з прототипами функцій, оголошення зовнішньої змінної не виділяє пам’ять. Він лише визначає сигнатуру змінної, щоб компілятор знав, як її слід обробляти, коли вона зустрічається у вашому коді.

Змінні класифікуються на глобальні змінні та локальні змінні залежно від їхнього обсягу. Основна відмінність між глобальними та локальними змінними полягає в тому, що доступ до глобальних змінних можна отримати глобально у всій програмі, тоді як до локальних змінних можна отримати доступ лише в межах функції чи блоку, у якому вони визначені.

static означає, що змінна буде загальновідома лише в цьому файлі. extern означає, що глобальна змінна, визначена в іншому файлі, також буде відома в цьому файлі, а також використовується для доступу до функцій, визначених в інших файлах. Локальну змінну, визначену у функції, також можна оголошувати як статичну.

За замовчуванням усі глобальні змінні є зовнішніми. Область дії змінної – у всій програмі. Зовнішні змінні називаються глобальними змінними, оскільки вони оголошуються поза функціями перед основною функцією. Зовнішні змінні поділяють змінні між кількома файлами C.

Доступ до зовнішньої змінної можуть мати всі функції в усіх модулях програми. Це глобальна змінна. Щоб функція могла використовувати змінну, оголошення або визначення зовнішньої змінної має лежати перед визначенням функції у вихідному коді.

Що таке глобальна змінна в C? Змінна, визначена поза межами всіх функцій відома як глобальна змінна в C. Глобальні змінні мають глобальну область видимості, тому ці змінні можуть бути доступні та змінені будь-якою функцією, структурою або будь-якою областю видимості в C.