Что вижу - о том пою (aragont) wrote,
Что вижу - о том пою
aragont

Любимый баг

Эта запись - анекдот для программистов. Остальные могут не вникать.

Чудесная ошибка когда-то обнаружилась в компиляторе языка Си от фирмы IBM, установленном на одном из кластеров МГУ. Лет пять назад мы потратили целый день, чтобы понять, что происходит. Потом хохма подзабылась, а нынче я снова получил учетную запись на этом вычислителе и тут же вспомнил про ошибку.

Текст программы


#include <unistd.h>

int main(void)
{
printf("Hello this is float 2.0 - %f\n",2.0f);
return 0;
}


Компиляция и сообщение об ошибке


regatta:~/test> xlc error.c
"error.c", line 5.45: 1506-250 (W) Floating-point constant 2.0f out of range.

Фокус в том, что до запуска компилятора я установил в системе русскую локализацию.


regatta:~/test> export LANG=ru_RU.KOI8-R

Компилятор пытается соответствовать российским стандартам и желает, чтобы вещественное число писалось с запятой в качестве разделителя - 2,0 -, а американскую запись - 2.0 - считает опечаткой.

Самое смешное, что если пойти у компилятора на поводу и написать


printf("Hello this is float 2.0 - %f\n",2,0f);

то компилятор вначале определит 2 и 0 как два элемента списка и опять начнет ругаться


"error.c", line 5.47: 1506-260 (S) Octal integer constant 0f is not valid.

Кстати, как программист я очень долго мучился с Excel'ем, потом плюнул и настроил так, что на моем компьютере дробная часть числа всегда пишется через точку.

Tags: программы
Subscribe

  • ДокторА

    Знакомая, которая отвечает рейтинг нашего института в разных наукометрических системах вроде Web of Science и Scopus, пожаловалась, что на очередном…

  • Английский в русском

    Когда говорят о засорении русского языка английским, то, чаще всего, имеют в виду проникновение английских корней. Я как то писал, что слово…

  • Про рога

    Антонимом к выражению "наставить рога" является выражение "поотшибать рога" и наоборот.

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments