різницю між статичною і глобальних

E

erodeboy

Guest
в чому різниця між статичної змінної і глобальна змінна в програмуванні

 
Статичні і глобальні змінні відрізняються багато у своєму житті та сферу застосування.

Статичні змінні є локальними за своїм обсягом функції, в якій вони визначені, але життя всієї програми.Статична змінна в diffined функція не може бути refferenced зі сторін функції.Але мінлива живі в пам'яті за допомогою цієї програми і зберігає це значення між викликами функцій.Простий локальної змінної створюється в стеку завжди, коли викликається функція.Статична мінлива ініціалізується в firt виконанні функції, в якій вона визначена.

змінної сфери Golbal і життя через поза програми, з тим можуть бути доступні з будь-якої частини програми (будь-якої функції або файл).Глобальна мінлива ініціалізується запустити код і reatins це присвоєно значення до наступного завдання.

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

Ура
idlebrain

 
також статичні varibles ..ті, чий значення зберігаються навіть через функції дзвінки навіть між блоками .. і значення статичного varible не можуть бути змінені.

Пам'ять для статичного - основної пам'яті.
Початкове значення - нуль.
обсяг - до завершення програми.
життя - до завершення програми ..але коли і розгляду глобальних varibles ..вони були оголошені до основного і значення цих глобальних varibles можуть бути доступні протягом всієї програми .. навіть в основний (), а також функції ...

У необхідність initilize глобальної varibles .. спробувати decalre глобальної varilble ..і друк без initilizein його значення ..якщо і отримати небажані ..то Kool ..

його застрелили ..

з повагою,
Arun

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

Якщо б було gloal змінної, вона була б надана виходить за рамки функцій, а статична змінна не доступні за межами сфери дії функції (корисний у локалізації помилки - як це не може бути змінений поза функції
сфери).
Статичні і глобальні змінні сильно відрізняються в своїй поведінці на життя і характер.По-перше, дозвольте мені розрізняти між життям і області.Життя об'єкта визначає, чи є об'єкт залишається у пам'яті (процесу), тоді як обсяг об'єкта, чи є я можу знати змінної її ім'я на цій позиції.Цілком можливо, що об'єкт живуть, але не видно (а не в сферу), але не об'єкта немає в живих, але за своїми масштабами (за винятком динамічно що виділяються об'єктів, на яких ви посилаєтеся об'єкта за допомогою покажчиків).

Статичні змінні є локальними в сферу їх модуль, в якому вони визначені, але життя всієї програми.Скажімо, статичну змінну всередині функції, не може бути викликаний ззовні функції (так як він не в сферу), але живий і знаходиться в пам'яті.Наступного разу ця функція введення (в рамках тієї ж програми) та сама ділянка пам'яті буде доступний в даний час зберігаючи старі значення змінних і ніяких нових пам'яті, що виділяється на цей раз для цієї змінної, як і інші змінні в функції (автоматичних змінних).Тому в основному змінної зберігається протягом всієї програми.Аналогічно, якщо статична мінлива визначена в глобальному просторі (скажімо, на початку файлу), то ця змінна буде
доступні тільки в цьому файлі (файл сфери).

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

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

ура ...

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

 
ststic є таке, яке havew conststn цінні
наприклад: статичні маска 1952 маска коштів у constsnt значення 52, які не можуть бути змінені.в той час як глобальні є абсолютно нові речі зі змінною зі значеннями, які можуть бути змінені і Аван бути acessed формі netire проектного простору.
до побачення

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

 
я хотів би знати, що це потрібно знову оголосити глобальну змінну в функцію (крім основного) ... якщо так, як ми це робимо ... і це може бути ініціалізовано у функції при кожному виконанні функції
спасибі

 
привіт
Глобальні змінні та статичні змінні
Первісна різниця між цими 2 типів змінних,
U може досягти глобальної змінної в будь-якому місці в коді програми.але це не відноситься до статичної змінної (але проведення Останнє значення, навіть якщо вихід з функції).
Коротко це так
спасибіДодано після 17 хвилин:На питання, щоб визначити глобальні змінні знову функцій, окрім основних функцій.
у не доведеться робити визначити їх знову
глобальна змінна діє в основною сферою кодів.

 

Welcome to EDABoard.com

Sponsor

Back
Top