переменные в си



Автор Василий Тёркин задал вопрос в разделе Другие языки и технологии

В каких случаях в Си надо использовать переменные static, а не глобальные переменные? и получил лучший ответ

Ответ от Bairam[мастер]
Если переменная объявлена как static,то компилятор выделяет ей как и глобальной переменной постоянное место в памяти. Значение этой переменной сохраняется между вызовами блоков программы, в которых она объявлена (нестатические локальные переменные между вызовами ф-ций уничтожаются) .
Отличие от глобальной в том, что она доступна только в своём блоке кода (ф-ции или файле) .
Прменяется, например, при вызовах COLLBACK ф-ций, которые вызываются при поступлении в приложение сообщений. При этом значения переменных объявленных static,сохраняются. Все другие переменные необходимо заново инициализировать.
Если объявить переменную-член класса как статическую, то компилятор создаст для всех объектов один щбщий экземпляр этой пере менной. Эта переменная не будет копироваться для всх объектов данного класса, как это происходит для нестатических членов.
//Пример:
#include <iostream>
using namespace std;
void fCount();
int main()
{
fCount();
fCount();
fCount();
}
void fCount()
{
static int x=0;
x++;
cout << "You call the funtion " << x << " time!
";
}
Результат работы программы:
You call the funtion 1 time!
You call the funtion 2 time!
You call the funtion 3 time!

Ответ от Aleks Al09[эксперт]
это почти тоже самое что и обычная переменная обьявлённая в блоке / функцие.
ещё можно исп-ть unsigned

Ответ от Ѝльф[активный]
в том что статические переменные уничтожаются после выполнения блокафункций, глобальные висят в оперативе до тех пор пока прога не завершится....

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: В каких случаях в Си надо использовать переменные static, а не глобальные переменные?
Типы данных в C на Википедии
Посмотрите статью на википедии про Типы данных в C
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*