Допустим, у меня есть следующий фрагмент кода:функция пау C отказывается работать с переменным показателем
int i; double value;
for(i = 0; i < CONSTANT; i++) {
value = (double)pow(2, i);
}
Попытка скомпилировать этот код дает «неопределенная ссылка на` '»ошибка ПР.
Включая или исключая math.h
, не имеет значения, так как он в конечном итоге включен.
Подъем 2.0
для жестко закодированного питания работает нормально, но все не удается, если подставить экспоненту выражение, содержащее i
.
Что я делаю неправильно? Благодарю.
Какой компилятор вы используете? Есть ли другое возможное объявление 'pow()'? Не могли бы вы процитировать ошибку? –
Я использую GCC и нет другого объявления 'pow'. На вопрос однозначно ответил; почти все ответы помогли мне. Хотел бы я принять более одного. :) Всем спасибо. – 2010-12-13 16:52:57
Пока другие комментируют, почему 'pow' не работает, весь факт, что вы используете' pow', представляет собой огромную проблему с вашим кодом. ** C имеет оператор для базы экспонентов 2 **, и это называется '<<'. Удалите это бесполезное использование 'pow' и замените его на' 1 << i', и забудьте о 'double'. –