Как работает это определение функции?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как работает это определение функции?

Сообщение Anonymous »

Я сгенерировал хеш-функцию с помощью gperf пару дней назад. То, что я увидел в хэш-функции, было мне чуждо. Это было примерно так (точный синтаксис не помню):

Код: Выделить всё

unsigned int
hash(str, size)
register char* str;
register unsigned int size;
{
//Definition
}
Теперь, когда я попытался скомпилировать с помощью компилятора C++ (g++), он выдал мне ошибки из-за того, что не были объявлены str и size. Но это скомпилировано на компиляторе C (gcc). Итак, вопросы:
  • Я думал, что C++ — это надмножество C. Если это так, то это тоже должно компилироваться с помощью компилятора C++, верно?
  • Как компилятор C понимает это определение? str и size не объявлены при первом появлении.
  • Какова цель объявления str и size после подписи функции, но перед телом функции, а не следовать обычному подходу, делая это в любом из двух мест?
  • Как мне заставить эту функцию компилироваться на g++, чтобы я мог использовать ее в своем коде на C++? Или мне следует попробовать сгенерировать код C++ из gperf? Возможно ли это?


Подробнее здесь: https://stackoverflow.com/questions/423 ... ition-work
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»