Как правильно использовать ключевое слово extern в C

extern сообщает компилятору, что c эти данные где-то определены c и будут связаны с компоновщиком.

С c помощью ответов здесь и разговоров c с несколькими друзьями приведен c практический пример использования c extern.

Пример 1 -, чтобы показать ловушку:

stdio.h:

int errno;

myCFile1.c:

#include 

// Code using errno...

myCFile2.c:

#include 

// Code using errno...

Если c myCFile1.o и myCFile2.o связаны, каждый из файлов c c имеет отдельные копии errno. Это c проблема, поскольку один c и тот же errno должен быть доступен c во всех связанных файлах.

Пример 2 - исправление.

stdio.h:

extern int errno;

stdio.c:

int errno;

myCFile1.c:

#include 

// Code using errno...

myCFile2.c:

#include 

// Code using errno...

Теперь, если c и myCFile1.o, и MyCFile2.o связаны компоновщиком, они c оба будут указывать на один c и тот же errno. Таким образом, решая c реализацию с помощью extern.

c

2022-11-19T14:19:26+00:00
Вопросы с похожей тематикой, как у вопроса:

Как правильно использовать ключевое слово extern в C