Я искал способ преобразовать целое число в строку портативным способом (портативный, по крайней мере, среди Windows & Linux и x86 и x86_64) и я хотя itoa(X)
быть стандартным точно так же, как atoi(1)
.
Но я считал следующее в статье в Википедии:
Функция itoa является широко распространенным нестандартным расширением стандарта C язык программирования. Это не может портативно использоваться, поскольку это не определяется ни в одном из стандартов языка C; однако, компиляторы часто обеспечивают его через заголовок, в то время как в несоответствующем режиме, потому что это - логический дубликат к стандартной библиотечной функции atoi.
Таким образом, я хотел бы знать, существует ли какой-либо способ сделать это портативным способом или нет. В случае, если я должен записать свою собственную функцию, с какими вещами я должен быть осторожным?
Чаще всего вы просто используете printf ("% d");
http://en.wikipedia.org/wiki/Printf
Вы можете использовать sprintf, если он вам нужен в буфере, но как часто вы конвертируете в строку, а не записываете ее в файл или на устройство вывода ?
Если вы делаете это не очень часто, как насчет библиотечной процедуры, которая записывает несколько чисел в память, анализирует результаты и сохраняет тип кодировки? После этого вы просто включаете свой "тип кодировки", чтобы выбрать, какую процедуру преобразования использовать.