мета-данные страницы
  •  

Это старая версия документа!


классы хранения

В Си существует четыре основных класса хранения: auto, extern, static, register.

extern

extern

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

// main.c
#include <stdio.h>
 
char message[] = "Hello";
 
void print() {
  printf("Hello from extern function\n");
}
int sum(int x, int y) {
  return x + y;
}
//app.c
#include <stdio.h>
 
extern char message[]; // переменная message из файла main.c
void print(void); // функция print из main.c
int sum(int, int); // функция sum из main.c
 
int main(void){
  // выводим на консоль внешнюю переменную message
  printf("%s \n", message);
 
  // вызываем внешнюю функцию print
  print();
 
  // вызываем другую внешнюю функцию - sum
  printf("4 + 5 = %d \n", sum(5, 4));
 
  return 0;
}