|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vasya Kruglov 2:5020/1587.444 11 Nov 2003 23:03:23 To : All Subject : сайд-эффекты --------------------------------------------------------------------------------
Тут пару недель назад была небольшая дискуссия о сайдэффектах в конструкциях
наподобие
i=(i++)+(i++)+(i++);
Вот пример из жизни, к чему они приводят:
=== cut ===
Д ETERNAL.TALK (2:5020/1587.444) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ETERNAL.TALK Д
Msg : 1672 of 1672 Uns Loc
From : Vasya Kruglov 2:5020/1587.444 Втp 11 Hоя 03 21:53## To : All Втp 11 Hоя 03 21:53
Subj : переносимость
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Привет тебе, матерый человечище All!
Помните, я рассказывал о том, что сейчас мы программируем на очень древнем
железе? Помогаю недавно одной знакомой портировать программу на С, написанную
под чем-то досовым (или виндами), писал парень этой знакомой. Под линуксом все
замечательно, а там возникают проблемы. Через где-то час удалось ее
скомпилировать. Hо работает неверно. Еще час активной половой жизни вчетвером
(я, она и два терминала) нахожу ошибку.
Есть две матрицы размером n на m, которые лежат в массивах mass и mass1. Hужно
скопировать содерживое mass1 в mass. Молодой человек этой девушки, выпускник,
блин, мехмата МГУ, написал следующий, язви его в душу, код:
k=0;
while (k<n*m)
mass[k]=mass1[k++];
Под виндами оно компилировалось так, как хотел тот молчел. Под линуксом (gcc)
тоже. А под этим HP-UX оно компилировалось несколько по-другому.
Рвать яйца надо за подобный код. Еще один оператор - и все работает абсолютно
корректно вне зависимости от компилятора:
k=0;
while (k<n*m) {
mass[k]=mass1[k];
k++;
}
Мяу!
Я не утверждаю, что вышенаписанное соответствует действительности.
Vasya Kruglov AKA zpt. zpt(at)rambler.ru
-+- GoldED+/386 1.1.1.2
+ Origin: Hастоящему индейцу завсегда везде ништяк! (2:5020/1587.444)
=== cut ===
Мяу!
Я не утверждаю, что вышенаписанное соответствует действительности.
Vasya Kruglov AKA zpt. zpt(at)rambler.ru
--- GoldED+/386 1.1.1.2
* Origin: Hастоящему индейцу завсегда везде ништяк! (2:5020/1587.444)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/193923fb15cb1.html, оценка из 5, голосов 10
|