Я реализовал функцию с именем abs (). Я получаю эту ошибку:
Внутренняя функция, не может быть определена
Что я сделал не так? Я использую Visual Studio 2005.
В этом случае intrinsic означает, что компилятор уже имеет реализацию функции с именем abs, которую вы не можете переопределить.
abs
Решение? Измените имя вашей функции на другое, например snakile_abs.
snakile_abs
Для получения дополнительной информации см. Документацию MSDN по функции abs.
Проблема не в заголовке или нет.
Проблема заключается в том, что встроенные функции, то есть функции, которые компилятор распознает и реализует сам, обычно с оптимизациями, которые не были бы доступны только в коде C, не могут быть определены.
Определение static int abs(int x) { ... } должно быть допустимым, но просто int abs(int x) { ... } имеет неопределенное поведение, и поэтому одна разумная вещь, которую может сделать компиляция, это выдача ошибки.
static int abs(int x) { ... }
int abs(int x) { ... }
Имена всех математических функций (см. Math.h)
Имена всех математических функций с префиксом 'f' или 'l'.
Зарезервированы для реализации.