Мне интересно, почему этот код компилируется и запускается. Я думал, что если переменная объявлена как статическая (в глобальной области), она будет доступна только в объявленном файле.Объявление extern и глобальный масштаб
functions.h
static int x = 10;
main.c
#include <stdio.h>
#include "functions.h"
extern int x;
int main()
{
printf("%d", x);
}
Это может помочь http://stackoverflow.com/questions/5040525/static-variable-in-a-header-file – Arya
Я бы не назвал это лучшая практика, чтобы объявить 'static' переменные в заголовке. –
@ Klas Lindbäck тогда где? – DRON