LINUX.ORG.RU

implicit declaration of function `roundf'


0

0

Имеется простенькая програмка:
#include <math.h>

int main()
{
float f;

f = roundf(M_PI);

return 0;
}

При ее компиляции с флагами -Wall -lm выдаётся предупреждение о том, что не найден прототип для фунции roundf(). Судя по man roundf этот прототип должен находится в заголовочном файле math.h, но его там нет. Чувствую, что я чего-то не догоняю... Может кто подскажет, в чём дело?


Внимательно читаем man roundf и видем, что:

CONFORMING TO C99.

соответственно компилировать нужно с ключиком -std=c99

human0id ★★★
()
Ответ на: комментарий от human0id

А если хочется ограничиться c89 или в крайнем случае gnu89? Как тогда с float работать: округлять (к ближайшему целому, в большую или меньшую сторону) и т.п.?

syomin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.