Что вижу - о том пою (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

  • Балабоба

    Для тех, кто не читает компьютерные новости. Яндекс запустил в общий доступ ИИ, который сочиняет прикольные короткие истории лучше меня. Адрес…

  • Как я взламывал освежитель воздуха

    У меня в туалете висит автоматический освежитель воздуха. Небольшая пластмассовая коробочка снаряжается двумя пальчиковыми батарейками и сменным…

  • Майонез

    Попался на глаза майонез, для которого маркетологи просто расстарались с этикеткой. После стандартного описания того, что майонез сделан из…

  • 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