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



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

В каких случаях в Си надо использовать переменные 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, а не глобальные переменные?

Чем указатели лучше переменных?
Указатели - тоже тип переменных. Но идея понятна. Не лучше, не хуже. Хороши на своем месте.
подробнее...

что такое typedef struct в си? и для чего он нужен? какие у него функции и что будет без него?
>что такое typedef struct в си?
Объявление типа "структура".

>и для чего он
подробнее...
спросили в Евгений IV
что означает знак процента "%" в си++ ?
Смотря где стоит. . если в printf, то отвечает за форматирование.
При остальных операциях -
подробнее...
спросили в Static X
Оператор return в СИ
Оператор return возвращает то, что ты укажешь ему.
Оперируют в большинстве только со
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

C++, как определить что переменная равна -1.#INF0 или 1.#INF0 т.е. бесконечности?
кидай сюда код
эмм лол кстати ток вспомнил что #ляляля это макросс в си так что попробуй
подробнее...

от чего зависит индуктивное и ёмкостное сопротивление переменного тока?
Емкостное сопротивление в цепи переменного тока
При включении конденсатора в цепь постоянного
подробнее...
спросили в Static X
Что за ключевые слова extern и static в С++?
Вообще-то они еще в Си были.

extern - переменная где-то объявлена, но не в этой единице
подробнее...

Подскажите, что означают здесь cout, cin, float?...+Язык Си
cin запрашивает данные с клавиатуры и помешает их в переменную после >>;
cout отображает
подробнее...
спросили в Другое
что известно о "книге перемен",кто её придумал?
И-ЦЗИН, - другое название Чжоу и, или КАНОН ПЕРЕМЕН, или в менее точном, но более известном
подробнее...

Что значит "null" в программировании?
Это 0 в виде указателя. Посмотри определение в include, сам увидишь. Какие проблемы.
подробнее...

Почему у китайцев в средние века были длинные волосы,которые они заплетали в косу?
а теперь посмотрите у кого ума больше) ) нверное у вас, вы здали хороший вопрос а ответить на него
подробнее...

народ! к чему снятся танки?
к миру в семье!
Источник: С НАСтупающим Вас
подробнее...
Типы данных в C на Википедии
Посмотрите статью на википедии про Типы данных в C
 

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

Имя*

E-mail:*

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