неожиданная ошибка при использовании передачи по ссылке - PullRequest
0 голосов
/ 29 января 2019

Я хочу использовать передачу по ссылке, но компилятор сказал, что ошибка: ожидается ';'.

после того, как я потратил много времени, чтобы найти ошибку, я до сих пор не понимаю, почему кодне работает.

затем после исправления пропущенной точки с запятой, у меня есть еще одна ошибка, которая ожидается ')'

int around(int &count1,int &count2,int &count3);

int volume(int &v1,int &v2,int &v3);

int large(int &a1,int &a2,int &a3);



int main() {
  int l,w,h,sum;

  printf("Input Length : ");
  scanf("%d",&l );

  printf("Input Width : ");
  scanf("%d",&w );

  printf("Input Height : ");
  scanf("%d",&h );
  printf("\n\n");

  sum = around(l,w,h);

  printf("Around = %d\n",sum );

  sum = volume(l,w,h);
  printf("Volume = %d\n",sum );

  sum = large(l,w,h);
  printf("Large = %d\n",sum );
  return 0;
}


int around(int &count1,int &count2, int &count3){
  int value;
  value = 4*(count1+count2+count3);

  return (value);
}

int volume(int &v1,int &v2,int &v3){
  int val;
  val = v1*v2*v3;

  return (val);
}

int large(int &a1,int &a2,int &a3){
  int sm;
  sm = 2*((a1*a2) + (a1*a3) + (a2*a3));
  return (sm);
}

1 Ответ

0 голосов
/ 29 января 2019

Ссылки, т. Е. Аргумент, которому предшествует &, как в вашем int around(int &count1,int &count2,int &count3), является функцией C ++ и недоступен в C.

В любом случае, ни одна из ваших функций фактически не изменяет аргументы, поэтомупередача "по ссылке" не имеет смысла.

Изменение всех ваших функций (и их предварительных объявлений), которые выглядят как

int around(int &count1,int &count2,int &count3) ...

, в

int around(int count1, int  count2, int  count3) ...

Должен решитьпроблема для C-компилятора.

Для C ++ - компилятора это сработало бы в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...