Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Класс хранения C

Класс хранения C

В этом руководстве вы узнаете об области действия и времени жизни локальных и глобальных переменных. Кроме того, вы узнаете о статических и регистровых переменных.

Каждая переменная в программировании на C имеет два свойства:тип и класс хранения.

Тип относится к типу данных переменной. Кроме того, класс хранения определяет область действия, видимость и время жизни переменной.

Существует 4 типа класса хранения:

  1. автоматически
  2. внешний
  3. статический
  4. зарегистрироваться
<час>

Локальная переменная

Переменные, объявленные внутри блока, являются автоматическими или локальными переменными. Локальные переменные существуют только внутри блока, в котором они объявлены.

Возьмем пример.

#include <stdio.h>

int main(void) {
  
  for (int i = 0; i < 5; ++i) {
     printf("C programming");
  }
  
 // Error: i is not declared at this point
  printf("%d", i);  
  return 0;
}

Когда вы запустите указанную выше программу, вы получите сообщение об ошибке необъявленный идентификатор i . Это потому, что i объявляется внутри for блок петель. Вне блока это не объявлено.

Возьмем другой пример.


int main() {
    int n1; // n1 is a local variable to main()
}

void func() {
   int n2;  // n2 is a local variable to func()
}

В приведенном выше примере n1 является локальным для main() и n2 является локальным для func() .

Это означает, что вы не можете получить доступ к n1 переменная внутри func() так как он существует только внутри main() . Точно так же вы не можете получить доступ к n2 переменная внутри main() так как он существует только внутри func() .

<час>

Глобальная переменная

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

<час>

Пример 1:глобальная переменная

#include <stdio.h>
void display();

int n = 5;  // global variable

int main()
{
    ++n;     
    display();
    return 0;
}

void display()
{
    ++n;   
    printf("n = %d", n);
}

Вывод

n = 7

Предположим, глобальная переменная объявлена ​​в file1 . Если вы попытаетесь использовать эту переменную в другом файле file2 , компилятор будет жаловаться. Чтобы решить эту проблему, ключевое слово extern используется в file2 чтобы указать, что внешняя переменная объявлена ​​в другом файле.

<час>

Зарегистрировать переменную

register ключевое слово используется для объявления регистровых переменных. Переменные регистра должны были быть быстрее, чем локальные переменные.

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

Если вы не работаете со встроенными системами, где вы знаете, как оптимизировать код для данного приложения, регистровые переменные не используются.

<час>

Статическая переменная

Статическая переменная объявляется с помощью static ключевое слово. Например;

static int i;

Значение статической переменной сохраняется до конца программы.

<час>

Пример 2:статическая переменная

#include <stdio.h>
void display();

int main()
{
    display();
    display();
}
void display()
{
    static int c = 1;
    c += 5;
    printf("%d  ",c);
}

Вывод

6 11

Во время первого вызова функции значение c инициализируется значением 1. Его значение увеличивается на 5. Теперь значение c равно 6, что напечатано на экране.

Во время второго вызова функции c не инициализируется в 1 снова. Это потому, что c является статической переменной. Значение c увеличивается на 5. Теперь его значение будет равно 11, что выводится на экран.


Язык C

  1. Переменные C# и (примитивные) типы данных
  2. Область видимости переменной C#
  3. C# статическое ключевое слово
  4. Шаблоны классов С++
  5. C Переменные, константы и литералы
  6. Переменные и типы С++:int, double, char, string, bool
  7. Java — типы переменных
  8. С — переменные
  9. C — Классы хранения
  10. C - Правила области применения