Я скомпилировал фрагмент кода о хэш-функции и получил ошибку: целочисленная константа слишком велика для «длинного» типа. Я сделал Google, и он сказал, чтобы добавить суффикс «ULL», но у меня был ULL как суффикс. Этот суффикс поддерживается только gcc 4.4.1, и у меня есть только gcc 4.1.2 на машине, и мне не разрешено устанавливать новый компилятор. Есть ли способ изменить код, чтобы устранить проблему?gcc 4.1.2: ошибка: целочисленная константа слишком велика для «длинного» типа
Спасибо, -Tony
unsigned long long hash(string k){ //FNV hash
unsigned long long x = 14695981039346656037ULL;
for (unsigned int y=0;y<k.length();y++){
x = x^(k[y]);
x = x * 1099511628211;
}
return (x);
}
Разделите свою константу на два 32-битных целых числа, затем выполните 'x = thehigherbits; x << = 32; x = x | возможно,? – fge