Помощь - Поиск - Пользователи - Календарь
Полная версия: Интересно...
Форум «Всё о Паскале» > Другое > Свободное общение
volvo
..., что по вашему мнению надо оторвать программисту, который решил сделать код более "аккуратным", и сделал вот так:
#include <iostream>

int main() {
const int n = 10;
const int arr[n] = {
139, 232, 365, 459, 532,
698, 025, 721, 844, 053
};
for(int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;

return 0;
}

Это упрощенный вариант реального кода. Там кода было побольше, функция строк из 50-60, и массив размером в 750 элементов, но основная идея остается той же... Тот код привел к потере почти 2 часов, пока мы искали ошибку в алгоритме, и только потом поняли, в чем дело... wacko.gif

Это ни в коем случае не HolyWar, но в Паскале и родственных ему языках такое невозможно по определению. А тут - ... Нет слов. Кстати, может, кто-то знает, есть ли какие-то ключи компиляции или опции, чтобы находить подобные проблемы? Хотя бы предупреждение чтоб выдавалось...

Спойлер (Показать/Скрыть)


P.S. Думал, где создать тему, здесь или в Юморе, решил создать здесь...
Archon
Спасибо, долго смеялся =). Давно, когда читал об этой особенности Си, сильно удивился такому формату, потому и запомнил хорошо.
Lapp
Цитата(volvo @ 26.05.2009 19:32) *
P.S. Думал, где создать тему, здесь или в Юморе
Ну, юмор тут весьма специальный)).
Я буквально за день до этого рассказывал дочке про особенности языков и приводил примеры трудно находимых ошибок в С. Этот немного поизощреннее, согласен..
Altair
А можете рассказать тут?
А то нет возможности запустить, т.к. нет ничего на компе.
Не вижу в коде ничего криминального...
volvo
Олег, вот и мы сразу не увидели... А ведь числа, начинающиеся с 0, трактуются компилятором С/С++ как записанные в 8-ричной СС... И получается, что 025 = 258 = 2110 и 053 = 538 = 4310
Lapp
Для демнстрации даже не нужен С, потому что та же самая штука в обычном командном языке MS DOS.
Сделай себе вот такой bat'ник:
set /a a=031
echo %a%

- и посмотри, что он напечатает)).
Я однажды сделал себе батничек для переименования фотографий (кстати - очень удобно, рекомендую, могу скинуть) и пользовался им долго и счастливо аж до октября. А октябре он отказался работать, вот именно по такой причине. Но я это просек после примерно получаса подробной трассировки.. smile.gif)

Client
Цитата
могу скинуть
Мона мне?
Lapp
Цитата(Client @ 1.06.2009 13:14) *
Мона мне?
Конечно)).
Очень удобно, на мой взгляд, у меня все картинки так расфасованы. Но..

Но я тут сообразил, что этот скриптик на самом деле locale-зависимый. Иначе гря, он вряд ли пойдет на русской Винде без доработки((. Ладно, здесь это флуд, я сделаю тему другую и положу. Мож, кто адаптирует ее к России.. Я при всем желании не смогу - у мя нет русской версии.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.