Latest web development tutorials
×

C курс

C Язык учебника C Краткое введение C параметры окружающей среды C Структура программы C Базовый синтаксис C Типы данных C переменная C постоянная C Storage Class C операторы C судья C циркуляция C функция C Обзорное правила C массив C указатель C строка C структура C союз C поле Bit C typedef C Входной и Выходной C грамотность документов C препроцессор C заголовок C Слепки C Обработка ошибок C Рекурсия C Переменный параметр C Управление памятью C Параметры командной строки C Классические 100 случаев

C Стандартная библиотека

C Стандартная библиотека - справочное руководство C Стандартная библиотека - <assert.h> C Стандартная библиотека - <ctype.h> C Стандартная библиотека - <errno.h> C Стандартная библиотека - <float.h> C Стандартная библиотека - <limits.h> C Стандартная библиотека - <locale.h> C Стандартная библиотека - <math.h> C Стандартная библиотека - <setjmp.h> C Стандартная библиотека - <signal.h> C Стандартная библиотека - <stdarg.h> C Стандартная библиотека - <stddef.h> C Стандартная библиотека - <stdio.h> C Стандартная библиотека - <stdlib.h> C Стандартная библиотека - <string.h> C Стандартная библиотека - <time.h>

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

Функция переменной программы определения C Класс хранения / диапазон (видимость) и жизненный цикл. Эти спецификаторы размещены, прежде чем они изменить тип. Ниже перечислены хранения класса C доступны в программе:

  • автоматический
  • регистр
  • статический
  • внешний

Класс автоматического хранения

Классавтоматического хранения все локальные переменные класса хранения по умолчанию.

{
   int mount;
   auto int month;
}

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

зарегистрировать класс хранения

зарегистрировать класс памяти используется для определения хранятся в регистрах вместо оперативной памяти в локальных переменных.Это означает, что максимальный размер переменной равен размеру регистра (обычно слово), и не может быть применен к нему одноместной '&' оператора (так как она не имеет место в памяти).

{
   register int  miles;
}

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

статический класс хранения

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

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

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

#include <stdio.h>
 
/* 函数声明 */
void func(void);
 
static int count = 5; /* 全局变量 */
 
main()
{
   while(count--)
   {
      func();
   }
   return 0;
}
/* 函数定义 */
void func( void )
{
   static int i = 5; /* 局部静态变量 */
   i++;

   printf("i is %d and count is %d\n", i, count);
}

Может быть, вы до сих пор не может понять этого экземпляра, потому что я использовал функции и глобальные переменные, эти два понятия до сих пор не объясняют. Даже если вы не в полной мере понять, это не имеет значения, в последующих главах мы подробно опишем. Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0

Экстерн класс хранения

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

Если у вас есть несколько документов и определить глобальную переменную или функцию , которая может быть использована в других документах, вы можете использоватьEXTERNв других файлах , чтобы получить переменную или функцию , определенную ссылку на. Его можнопонять,Экстерн используется для объявить глобальную переменную или функцию в другом файле.

Экстерн модификатор обычно используется, когда есть два или более файлов одни и те же глобальные переменные или функции времени, следующим образом:

Первый файл: main.c

#include <stdio.h>
 
int count ;
extern void write_extern();
 
main()
{
   count = 5;
   write_extern();
}

Второй файл: support.c

#include <stdio.h>
 
extern int count;
 
void write_extern(void)
{
   printf("count is %d\n", count);
}

Здесь, второй файлЭкстернключевое слово используется дляподсчетав первом заявлении было определено в файле main.c. Теперь, скомпилировать оба файла, следующим образом:

 $gcc main.c support.c

Это произведетa.out исполняемой программы, когда программа выполняется, он будет производить следующие результаты:

5