Я написал очень простую программу на C. Он компилируется и отлично работает. Но если добавить Экстерн Int й в functions.h вместо functions.c я получаю эту ошибкуОшибка компиляции при использовании extern
functions.c:3:12: error: use of undeclared identifier 'x'
return x/2;
^
1 error generated.
Я думал, что правильное место для экстерна в файле заголовок.
variables.h
int x = 10;
functions.h
#include "variables.h"
int calculate_items(int d);
functions.c
extern int x;
int calculate_items(int d)
{
return x/2;
}
main.c
#include <stdio.h>
#include "functions.h"
int main() {
printf("%d", calculate_items(5));
}
Вы можете (и, вероятно, должны) поместить 'extern int x;' в заголовочный файл, который, как я предполагаю, означает, что OP означает «правильное место для extern в файле заголовка». – interjay
@interjay именно это был мой вопрос. Проблема в том, что когда я помещаю extern в файл заголовка, я получаю ошибку для незаявленного идентификатора x – DRON
@DRON Убедитесь, что вы включаете заголовочный файл везде, где вам нужно получить доступ к переменной. И сделайте так, как в этом ответе говорится о том, чтобы положить 'int x = 10' в файл C. – interjay