Не в состоянии редактировать внешние переменные

Я написал следующий код

head.h

int i = 0;

sample.cpp

#include <stdio.h>
#include "head.h"
extern int i;
i = 20;

int main() {
printf("%d \n",i);
return 0;
}

когда я компилирую sample.cpp, компилятор выдает следующую ошибку:

sample.c:5:1: warning: data definition has no type or storage class [enabled by default]
sample.c:5:1: error: redefinition of ‘i’
head.h:1:5: note: previous definition of ‘i’ was here

0

Решение

Это наоборот, extern объявление должно быть в заголовке и определение в файле реализации и определяется только один раз.

//head.h
extern int i;//sample.cpp
#include <stdio.h>
#include "head.h"
int i = 20;

int main() {
printf("%d \n",i);
return 0;
}

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

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]