Скажем, у меня есть родительский каталог с двумя подкаталогами B и C.Использование функции из другого файла C, помещенного в другой каталог?
подкаталог C имеет helper.c и helper.h, как показано:
//helper.c
void print(){
printf("Hello, World!\n");
}
//helper.h
void print();
Теперь, в подкаталог B, у меня есть main.c, который просто вызывает функцию печати:
//main.c
#include<stdio.h>
#include"../C/helper.h"
void main(){
print();
}
Я попытался следующие команды для компиляции main.c:
Command 1: gcc main.c //Gives undefined reference to 'print' error
Command 2: gcc main.c ../C/helper.c //Compiles successfully
Теперь я удалил #include "../ C/helper.h" из основного .c и снова попробовал команду 2. Он по-прежнему работает.
Так что у меня следующие вопросы:
я) Какая разница, сделать ли включен файл helper.h или helper.c?
ii) Почему команда 1 не работает?
III) Есть ли способ, чтобы составить свою программу C без указания helper.c каждый раз?