Я получаю ошибку "конфликтующие типы" в C - PullRequest
1 голос
/ 18 сентября 2010

В настоящее время я работаю над программой для курса C, в котором мне нужно вывести область формы.

Вот функция для области прямоугольника, которая есть в моей программе:

double rectangle() // calculate area of rectangle
{
    double length, width;

    printf("\nEnter length and width of rectangle: ");
    scanf("%g %g\n", &length, &width);

    return (length*width);
}

вот где я вызываю функцию rectangle()

if(strncmp(shape, "rectangle", 15) == 0)
    area = rectangle();

Я использую Geany в Linux Mint с компилятором GCC.

Я получаю ошибку

"geometryv2.c: 78: ошибка: конфликтующие типы для" прямоугольника "*

Я не вижу, что здесь конфликтует. Функция с типом возврата double возвращает значение double. Любая помощь здесь будет принята с благодарностью. Я все еще довольно плохо знаком с C, и это на самом деле моя первая программа на C.

Спасибо!

Ответы [ 2 ]

5 голосов
/ 18 сентября 2010

Вы объявили функцию rectangle() перед ее использованием?Если нет, предполагается, что он вернет int.

Вам понадобится строка наподобие:

double rectangle(void);

где-то перед вызовом, или для определения функции в том же модуле, из которогоэто называется, прежде чем это называется.

0 голосов
/ 18 сентября 2010

Что такое тип данных переменной области?

также исправьте scanf:

scanf("%lg %lg")
...