Как новичок в C, мне интересно, каков результат в отношении выделения памяти для двойного определения одной и той же переменной, то есть:

Первый файл: file.h

int data;

Второй файл: main.c

#include "file.h"
...
int data = 56;
...
-2
user4596676 23 Фев 2015 в 14:48

2 ответа

На самом деле оба они одинаковы.
int data; 1. здесь вы объявляете целочисленную переменную без инициализации ее значения.

#include file.h
...
int data = 56;
...
  1. в этом случае вы объявляете целочисленную переменную без инициализации. потому что оба объявления переменных данных находятся в одном файле. поэтому он покажет ошибку. переменная не может быть объявлена ​​дважды в одном файле (области видимости).
-1
vimalraturi 23 Фев 2015 в 12:02

Если вы хотите дважды объявить переменную, используйте

extern int data;

В file.h.

Дополнительная информация о extern переменных.

Более того, #include file.h неверно, напишите "#include "file.h".

1
shauryachats 23 Фев 2015 в 12:02