Заголовочные файлы - где и что прописать? - C (СИ)
Формулировка задачи:
Вопросы:
1) Не очень понимаю где какие include надо писать. В main.cpp, head.h, functions.cpp. Допустим в файле определения функций functions.cpp используются различные библиотеки - string.h, stdlib.h и т.д. Достаточно ли написать #include head.h и все эти библиотеки подключить в head.h. Что тогда подключать в main.cpp. Только include "head.h" и библиотеки, которые нужны именно в main.cpp, но не в используемых функциях из functions.cpp?
2) Что если во всех 3х файлах включать всё подряд (все include) Компилятор сам оставит по 1 экземпляру или включит все?
3) Не пойму как работать со структурой в этом всём.
есть
Если не было бы указателя, то в функциях можно было написать аргумент Record rec1. Но с указателем надо где-то выделять память. Где это надо делать-в head.h или functions.cpp
#define M 50 struct Record{ char str1[M]; char str2[M]; char str3[M]; } *p;
Решение задачи: «Заголовочные файлы - где и что прописать?»
textual
Листинг программы
extern Record *tmp, *search; void test() { scanf("%s", search->str1); printf("%s\n", search->str1); }
Объяснение кода листинга программы
Record *tmp
- в данном кодеtmp
это указатель на структуруRecord
.Record *search
- в данном кодеsearch
это указатель на структуруRecord
.scanf(
%s, search->str1)
- в данном коде происходит чтение строки с помощью функцииscanf
. Введенная строка сохраняется в полеstr1
структурыsearch
.printf(
%s\n, search->str1)
- в данном коде выводится содержимое поляstr1
структурыsearch
с помощью функцииprintf
.void test()
- в данном кодеtest
это функция, которая не возвращает значение.- В данном коде нет использования переменных
tmp
иsearch
кроме как для чтения и вывода строки. - В данном коде нет обработки ошибок при чтении строки с помощью
scanf
. - В данном коде нет других действий кроме чтения строки и ее вывода.
- В данном коде нет использования других функций или библиотек кроме
scanf
иprintf
. - В данном коде нет других объявлений переменных кроме
tmp
иsearch
. - В данном коде нет других структур данных кроме структуры
Record
. - В данном коде нет других файлов, включений или библиотек.
- В данном коде нет других циклов, условий или операторов.
- В данном коде нет других действий с памятью кроме чтения и вывода строки.
- В данном коде нет других действий с файлами или устройствами ввода-вывода.
- В данном коде нет других действий с числами, булевыми значениями или символами.
- В данном коде нет других действий с указателями или ссылками.
- В данном коде нет других действий с памятью, кроме чтения и вывода строки.
- В данном коде нет других действий с функциями или процедурами.
- В данном коде нет других действий с типами данных или переменными.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д