C - вызов по значению . Это означает, что функция не может изменить значение переменной в контексте вызывающей стороны, если только вызывающая сторона не передает адрес этого значения.
Поскольку вашей функции на самом деле не нужен входной аргумент, его следует удалить. Все, что вам нужно, это возвращаемое значение.
Кроме того, вы можете рассмотреть возможность использования нескольких операторов return
, изменив if
-почту, чтобы она выглядела так:
if (number==7 && character_two=='1') {
return 1;
}else if (number==5 && character_two=='2') {
return 2;
и т. Д.
Кроме того, использование «магических» числовых констант обычно является плохой идеей. Было бы лучше ввести перечисление до main()
, например:
enum Part { PART_C17 = 1, PART_F25, PART_DN3, PART_GG7, PART_MV4 };
Затем измените функцию, чтобы она возвращала значение этого нового типа:
enum Part getPartType(void)
{
/* ... */
}
и обновите код в if
-адрес соответственно:
if (number==7 && character_two=='1') {
return PART_C17;
}else if (number==5 && character_two=='2') {
return PART_F25;
и т. Д.