Мне трудно понять, почему я не могу использовать одну и ту же функцию в нескольких исходных файлах C.Я всегда думал, что я не могу получить доступ к функциям в другом исходном файле до тех пор, пока они не объявлены в заголовочном файле.
Давайте предположим, что у меня есть следующее:
main.c -> включает thread1.h и thread2.h
thread1.h -> объявляет, напримерvoid * thread1();
thread1.c -> определяет void * thread1(){} и определяет void lock(){}
thread2.h -> объявляет, напримерvoid * thread2();
thread2.c -> определяет void * thread2(){} и определяет void lock(){}
Теперь gcc говорит мне, что я не могу этого сделать!
исполняемый файл gcc -pthread -Wall -o main.c thread1.c thread2.c
ОШИБКА:множественное определение термина "блокировка"
Итак, теперь мой вопрос таков:
Как я могу достичь того, чего я хочу?
Я не думаю, что это должно быть невозможно.В противном случае весь исходный код C, доступный во всех многочисленных библиотеках C, должен был бы быть уникальным.(нет, это не имело бы никакого смысла, или не так ли?)
Итак, около 3 часов назад я подумал про себя, что должно быть решение.Что я, должно быть, чего-то здесь не понимаю.
Ну , я попробовал погуглить это ...но почему-то мои навыки работы с Google на этот раз мне не помогли.Неужели действительно нет никакого способа сделать это?Или я просто слишком глуп, чтобы искать это?
Заранее благодарю,
лип