В будущем предоставьте фрагмент кода вместе с предупреждениями, чтобы у нас был некоторый контекст для работы. В противном случае мы можем только догадываться, в чем заключается настоящая проблема.
Я предполагаю, что sqlcxt, sqlcx2t и т. Д. Являются функциями. Не видя исходного кода, кажется, что у вас нет объявления для этих функций в области видимости перед их использованием.
Вот краткий пример того, что я имею в виду:
int main(void)
{
foo();
return 0;
}
void foo(void)
{
// do something interesting
}
Когда компилятор видит вызов foo
в main
, он не имеет объявления в области видимости, поэтому он предполагает, что foo
возвращает int, а не void, и выдаст предупреждение, аналогичное тому, что вы получил выше.
Если ваши функции определены в том же файле, в котором они вызываются, есть два пути решения этой проблемы. Мой предпочтительный способ - определить функцию перед ее использованием:
void foo(void)
{
// do something interesting
}
int main(void)
{
foo();
return 0;
}
Другим способом является объявление функции в области видимости перед ее вызовом:
void foo(void);
int main(void)
{
foo();
return 0;
}
void foo(void)
{
// do something interesting
}
Похоже, что эти функции являются частью API базы данных; если так, то должен быть файл заголовка, который содержит объявления для этих функций, и этот заголовок должен быть включен в ваш исходный файл:
/** foo.c */
#include "foo.h"
void foo(void)
{
// do something interesting
}
/** end foo.c */
/** foo.h */
#ifndef FOO_H
#define FOO_H
void foo(void);
#endif
/** end foo.h */
/** main.c */
#include "foo.h"
int main(void)
{
foo();
return 0;
}
/** end main.c */
Надеюсь, это поможет.