Функция объявлена с внешним связыванием - C (СИ)
Формулировка задачи:
Здравствуйте!
Дело в том, что в одном модуле несколько объявленных функций. Насколько я помню, если программа многофайловая, то функция объявленная (
Тогда они стали видны.
stream и sym это typedef объявления:
С другими функциями в этом же проекте все прекрасно.
В чем может быть дело?
Читаю Прата у него про это не написано.....
без static
) доступна в других файлах. Но почему-то именно эти объявленные функции недоступны. Пришлось прописывать их прототипы. main.c
int str_get(stream,sym);
...
typedef unsigned char sym;
typedef struct stream_t stream_t, *stream;
Решение задачи: «Функция объявлена с внешним связыванием»
textual
Листинг программы
extern int str_get(stream,sym); int main() { str_get(fakeStream,fakeSym); }
Объяснение кода листинга программы
- В коде имеется функция с названием
str_get
, которая объявлена с внешним связыванием. - Функция
str_get
принимает два аргумента типа int, которые называютсяstream
иsym
. - В функции
main
создаются две переменные типа int с названиямиfakeStream
иfakeSym
, которые передаются в качестве аргументов в функциюstr_get
. - После вызова функции
str_get
программа продолжает работу, но значения переменныхfakeStream
иfakeSym
не используются. - Возможно, функция
str_get
выполняет какую-то операцию со строками, но в данном коде не указано, какие именно операции выполняются. - Возможно, переменная
stream
используется для чтения символов из некоторого потока данных, а переменнаяsym
используется для определения символа, который нужно найти или обработать. - Возможно, функция
str_get
возвращает какое-то значение, но в данном коде не указано, какое именно значение она возвращает. - Возможно, в данном коде не хватает объявления функции
str_get
, чтобы понять, как она работает. - Возможно, в данном коде не хватает информации о том, какие типы данных используются для потока данных и символа.
- Возможно, в данном коде не хватает информации о том, как функция
str_get
взаимодействует с другими функциями или переменными. - Возможно, в данном коде не хватает информации о том, какие операции выполняются с потоком данных и символом внутри функции
str_get
. - Возможно, в данном коде не хватает информации о том, какие значения могут быть переданы в функцию
str_get
и какие значения она может возвращать. - Возможно, в данном коде не хватает информации о том, какие ошибки или исключения могут возникнуть при выполнении функции
str_get
. - Возможно, в данном коде не хватает информации о том, какие оптимизации или улучшения могут быть применены к функции
str_get
. - Возможно, в данном коде не хватает информации о том, какие еще функции или библиотеки могут использоваться вместе с функцией
str_get
. - Возможно, в данном коде не хватает информации о том, какие еще параметры или аргументы могут быть переданы в функцию
str_get
. - Возможно, в данном коде не хватает информации о том, какие еще операции или действия могут быть выполнены с потоком данных и символом внутри функции
str_get
. - Возможно, в данном коде не хватает информации о том, какие еще условия или проверки могут быть выполнены с потоком данных и символом внутри функции
str_get
. - Возможно, в данном коде не хватает информации о том, какие еще функции или методы могут быть использованы для работы с потоками данных и символами.
- Возможно, в данном коде не хватает информации о том, какие еще типы данных или структуры могут быть использованы для представления потоков данных и символов.