Язык программирования Си



         

Функции, возвращающие нецелые значения - часть 3


Располагая соответствующим образом описанной функцией atof, мы можем написать функцию atoi, преобразующую строку символов в целое значение, следующим образом:

/* atoi: преобразование строки s в int с помощью atof */ int atoi (char s[]) { double atof (char s[]); return (int) atof (s); }

Обратите внимание на вид объявления и инструкции return. Значение выражения в

return выражение;

перед тем, как оно будет возвращено в качестве результата, приводится к типу функции. Следовательно, поскольку функция atoi возвращает значение int, результат вычисления atof типа double в инструкции return автоматически преобразуется в тип int. При преобразовании возможна потеря информации, и некоторые компиляторы предупреждают об этом. Оператор приведения явно указывает на необходимость преобразования типа и подавляет любое предупреждающее сообщение.

Упражнение 4.2. Дополните функцию atof таким образом, чтобы она справлялась с числами вида

123.45e-6

в которых после мантиссы может стоять e (или E) с последующим порядком (быть может, со знаком).




Содержание  Назад  Вперед