- 1
- 2
nPosition = !bInvert ? data->pos_back
: data->pos_front;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+150
nPosition = !bInvert ? data->pos_back
: data->pos_front;
- сверху или снизу?
- что, вот так сразу?
хватить уже ныть )
Сидит программист в кафе, прогу пишет. Тут к нему подваливает тян:
- Если хочешь со мной познакомиться, то меня зовут Маша.
- А если я не хочу с тобой знакомиться, то как тебя зовут?
-да!
-и чем же он занят?
-сбережением энергии!
В данном случае можно предположить, что 'bInvert == 0' является штатной и естественной ситуацией, почему автор кода и предпринял усилия к тому, чтобы первой в '?:' была именно ветка, предназначенная для обработки ситуации 'bInvert == 0'.
//id 2 - двигаемся назад
//id 1 - двигаемся вперед
BYTE bInvert = (data->Flags & 0x0010) == 0x0010;
int nPosition = 0;
if (id == 2) {
nPosition = !bInvert ? data->pos_back : data->pos_front;
moveto(nPosition);
} else if (id == 1) {
nPosition = !bInvert ? data->pos_front : data->pos_back;
moveto(nPosition);
}
препод: функция меняет знак?
студент: да!
препод: (удивленно) Каааак?
студент: Но не очень!!!
Settings settings = { 0 };
и ожидать, что в результате вот таким вот компактным образом я безо всякой головной боли получу "штатный" набор установок, работающий в 9 случаях из 10.
А уж если мне надо соорудить что-то необычное, то я тогда уже выборочно подкручу то, что мне надо подкрутить, типа
settings.bInvert = 1;
При таком подходе "логичнее" выглядит именно 'bInvert', а не 'bDirect'. Но это, конечно, дело вкуса...
Делай так:
Settings settings = {};
а лучше так:
Settings settings;