Если я включаю декларацию части структуры (например) в два разные файлы, будет части переменных в одном файле быть тем же типа, как части переменных в другой файл?Декларация структур в нескольких файлах
ответ
Да, они одного типа, если декларации структурно одинаковы. Если это было неверно, было бы невозможно вызвать библиотечные функции, которые используют параметры структуры, поскольку вызывающий и вызываемый находятся в разных файлах.
Декларации не должны быть буквально одинаковыми. Пока они задают одни и те же типы в одном и том же порядке, такие вещи, как имена участников и имя типа структуры, не должны совпадать. Так что если вы делаете:
file1.c:
struct {
int i;
char c;
} var1;
и file2.c:
typedef struct newstruct {
int v1;
char v2;
} newstruct_t;
newstruct_t var2;
затем var1
и var2
одного и того же типа.
Полная информация немного сложнее, но это полезное приближение.
Однако программирование, подобное этому, будет путать. Если вы собираетесь делиться типом между файлами, вы должны поместить объявление в файл заголовка, а #include
- во все исходные файлы, которые его используют.
- 1. Использование нескольких структур в заголовочных файлах C++
- 2. C программирование (Декларация структур)
- 3. Передовая декларация структур typedef в GBDK C
- 4. массив массивов структур в C - декларация
- 5. Глобальная переменная в нескольких файлах
- 6. Определение констант в нескольких файлах
- 7. Создание нескольких структур в C?
- 8. Поиск нескольких строк в нескольких файлах
- 9. Поиск нескольких строк в нескольких файлах
- 10. назначение нескольких структур на массив структур в MATLAB
- 11. «Открытая декларация» (F3) не работает в файлах Facelets некоторых проектов
- 12. машинопись декларация окружающей среды и реализации в отдельных файлах
- 13. forward декларация в двух заголовках и двух файлах cpp
- 14. Regex заменить в нескольких файлах
- 15. Изменение года в нескольких файлах
- 16. статические функции в нескольких файлах
- 17. #define сферы в нескольких файлах
- 18. Split views.py в нескольких файлах
- 19. Семантический Logging в нескольких файлах
- 20. сравнение значений в нескольких файлах
- 21. Template instantiaton в нескольких файлах
- 22. Сжатие Gzip в нескольких файлах
- 23. IDL-чтение в нескольких файлах
- 24. Использование структуры в нескольких файлах
- 25. Совпадение слов в нескольких файлах
- 26. Использование socket.io в нескольких файлах
- 27. Java Регистрация в нескольких файлах
- 28. Найти строку в нескольких файлах
- 29. Написание нескольких структур в файл в Go
- 30. Сохранение нескольких структур в состоянии gen_server
Право. Чтобы убедиться, что вы получаете одно и то же объявление в обоих файлах, рекомендуется применить ваше объявление 'struct' в заголовочном файле и включить его из обоих файлов' .c'. – nickie
@nickie Я подумал, что это то, что он имел в виду, когда сказал _include объявление_, но теперь я вижу, что он мог бы означать, что объявления должны быть непосредственно в исходные файлы, а не использовать '# include'. – Barmar
Что делать, если одно объявление содержит тег, а другое - нет. Будут ли они по-прежнему одного типа? – chanzerre