Я делаю задание для класса CS, и они хотят, чтобы я сделал прототип для этого:
void myFunction(double pressure, int &temperature, double &volume){
...
}
Но я понимаю, что это должно быть больше так:
void myFunction(double pressure, int& temperature, double& volume){
...
}
Может кто-нибудь сказать мне, если здесь есть что-то хитрое? Является int &temperature
такой же как int& temperature
когда дело доходит до компиляции?
Краткий ответ: да, они одинаковы. Если в скобках не указано иное, интервал означает одно и то же по обе стороны от &
а также *
модификаторы. После этого это опция стиля кода, которая в основном зависит от вас.
Они точно такие же. Пробелы между токенами (в основном) не имеют отношения к теме.
Когда используешь *
а также &
пробелы не имеют значения, поэтому:
int &temperature
эквивалентно:
int& temperature
а также для:
int & temperature
А какой из них вы будете использовать — это дело вкуса. Я лично предпочитаю второй, так как тип temperature
является int&
я считаю более разумным хранить его вместе с типом. Тем не менее, я уверен, что некоторые люди могут дать разумные аргументы, чтобы объяснить, почему они также предпочитают другого.
Однако пробелы важны для поддержания чистоты вашего кода & легко читать. Хотя вы всегда сталкиваетесь с такими неприятными вещами, как if (a --> 3)
время от времени 🙂