В вашем коде
char itoa(num, intStr[10]);
return itoa;
сообщает компилятору, что вы объявляете функцию с именем itoa
с определенной сигнатурой, затем вы хотите вернуть (указатель на)эта функция .Поскольку вы объявили тип возвращаемого значения как char
, компилятору это не понравится.
Он должен выглядеть примерно так:
char int2String(int num, char intStr[10]) {
char ch = itoa(num, intStr);
return ch;
}
т.е. , вызывать функциюitoa
с данными параметрами, сохранить его возвращаемое значение в локальной переменной типа char
, а затем вернуть его.(Локальная переменная может быть встроена, чтобы упростить код.)
Теперь это по-прежнему не радует компилятор, поскольку itoa
, хотя и не является частью стандарта, по соглашению объявлено, что оно возвращает char*
и принять 3 параметра, а не 2. (Если только вы не используете нестандартное определение, если itoa
, то есть.)
При «стандартной» версии itoa
эта модификация должна работать (теоретически припо крайней мере - я не проверял это: -)
char* int2String(int num, char intStr[10]) {
return itoa(num, intStr, 10);
}