Я работаю над BCD (Binary Coded Decimal) на C и отвечаю за написание различных функций bcd.
Мне нужно закодировать целое число i в буферные char * размера n. Функция возвращает 0 в случае успеха или -1 в случае переполнения (для кодирования i требуется буфер больше n).
Вот функция: int bcd_encode(int i, int n, char *s)
и пример ввода: assert(bcd_encode(a, 128, s) == 0);
Я пишу код для функции bcd_encode и исправляю меня, если я ошибаюсь, но я верю в функцию и только в функции, если бы у вас были некоторые func(char x[])
и char func(char *x)
, они были бы одинаковыми? Таким образом, вы можете рассматривать их обоих как массив символов. Если бы он находился вне определения функции, char x[];
был бы массивом символов, а char *x;
был бы указателем.
int bcd_encode(int i, int n, char *s){
int j = 0;
s = itoa(i, s, n+1);
}
Но это возвращает предупреждение «назначение делает указатель из целого числа без приведения» и неопределенный символ для itoa. Я пробовал несколько разных вариантов от
* s = itoa (i); s = itoa (i); s = itoa (i, s, n + 1);
Любая помощь будет оценена по достоинству. Заранее спасибо!
int
в конце функции? - person Peyman   schedule 08.02.2011itoa
только MSVC ++ (AFAIK). Это не стандартный C. - person Mateen Ulhaq   schedule 08.02.2011