Заголовочные файлы - где и что прописать? - 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) Не пойму как работать со структурой в этом всём. есть
#define M 50
 
struct Record{
    char str1[M];
    char str2[M];
    char str3[M];
} *p;
Если не было бы указателя, то в функциях можно было написать аргумент Record rec1. Но с указателем надо где-то выделять память. Где это надо делать-в head.h или functions.cpp

Решение задачи: «Заголовочные файлы - где и что прописать?»

textual
Листинг программы
extern Record *tmp, *search;
void test()
{
    scanf("%s", search->str1);
    printf("%s\n", search->str1);
}

Объяснение кода листинга программы

  1. Record *tmp - в данном коде tmp это указатель на структуру Record.
  2. Record *search - в данном коде search это указатель на структуру Record.
  3. scanf(%s, search->str1) - в данном коде происходит чтение строки с помощью функции scanf. Введенная строка сохраняется в поле str1 структуры search.
  4. printf(%s\n, search->str1) - в данном коде выводится содержимое поля str1 структуры search с помощью функции printf.
  5. void test() - в данном коде test это функция, которая не возвращает значение.
  6. В данном коде нет использования переменных tmp и search кроме как для чтения и вывода строки.
  7. В данном коде нет обработки ошибок при чтении строки с помощью scanf.
  8. В данном коде нет других действий кроме чтения строки и ее вывода.
  9. В данном коде нет использования других функций или библиотек кроме scanf и printf.
  10. В данном коде нет других объявлений переменных кроме tmp и search.
  11. В данном коде нет других структур данных кроме структуры Record.
  12. В данном коде нет других файлов, включений или библиотек.
  13. В данном коде нет других циклов, условий или операторов.
  14. В данном коде нет других действий с памятью кроме чтения и вывода строки.
  15. В данном коде нет других действий с файлами или устройствами ввода-вывода.
  16. В данном коде нет других действий с числами, булевыми значениями или символами.
  17. В данном коде нет других действий с указателями или ссылками.
  18. В данном коде нет других действий с памятью, кроме чтения и вывода строки.
  19. В данном коде нет других действий с функциями или процедурами.
  20. В данном коде нет других действий с типами данных или переменными.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы