Внутренняя функция, не может быть определена (C) - PullRequest
3 голосов
/ 24 августа 2010

Я реализовал функцию с именем abs (). Я получаю эту ошибку:

Внутренняя функция, не может быть определена

Что я сделал не так? Я использую Visual Studio 2005.

Ответы [ 4 ]

3 голосов
/ 25 августа 2010

Внутренняя функция, не может быть определена

В этом случае intrinsic означает, что компилятор уже имеет реализацию функции с именем abs, которую вы не можете переопределить.

Решение? Измените имя вашей функции на другое, например snakile_abs.

Для получения дополнительной информации см. Документацию MSDN по функции abs.

2 голосов
/ 24 августа 2010

Проблема не в заголовке или нет.

Проблема заключается в том, что встроенные функции, то есть функции, которые компилятор распознает и реализует сам, обычно с оптимизациями, которые не были бы доступны только в коде C, не могут быть определены.

0 голосов
/ 25 августа 2010

Определение static int abs(int x) { ... } должно быть допустимым, но просто int abs(int x) { ... } имеет неопределенное поведение, и поэтому одна разумная вещь, которую может сделать компиляция, это выдача ошибки.

0 голосов
/ 25 августа 2010

Имена всех математических функций (см. Math.h)

Имена всех математических функций с префиксом 'f' или 'l'.

Зарезервированы для реализации.

...