Детский лепет

uxx
Сообщений: 44
Зарегистрирован: 13 июл 2011, 21:00

Детский лепет

Сообщение uxx » 03 авг 2011, 14:20

Wild Bill так в С++ вообще нелья писать (C style cast - зло). Нужно либо так:

Код: Выбрать все

 int a = -1;
 bool b = !(a - 1);

либо так:

Код: Выбрать все

 int a = -1;
 bool b = !static_cast<bool>(a - 1);


Вообще, int к bool'у свободно конвертится. С борландом я принципиально дел не имею из-за его корявости и ужасной кодогенерации. Если он ещё стандарт коряво поддерживает, то я только рад, что с ним никогда не работал.
Последний раз редактировалось uxx 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

Детский лепет

Сообщение Wild Bill » 03 авг 2011, 14:57

Насчёт преобразования static_cast<type>(expr) согласен, мой вариант -- тяжёлое наследие того же дебилдера, который не весь стандарт тогда поддерживал.
Последний раз редактировалось Wild Bill 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

k1ng1232
Сообщений: 1673
Зарегистрирован: 21 ноя 2008, 21:00

Детский лепет

Сообщение k1ng1232 » 03 авг 2011, 21:45

нууууу на счет типа bool в С я бы был осторожен, т.к. в ранних версиях его просто напросто не было, а появился он в версии С99
Последний раз редактировалось k1ng1232 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

Детский лепет

Сообщение Wild Bill » 04 авг 2011, 12:38

Как я понял, мы здесь больше обсуждаем С++. Но с Вашим замечанием я полностью согласен, сам начинал с С, потом с С++ ещё в 1992-1993 гг. Очень много изменилось за эти почти двадцать лет. Иногда мы остаёмся в плену наших старых знаний и представлений... Увы.

Должен признаться, что очень много пишу на С++, пользуюсь практически всеми его возможностями, но С так и не понял...
Последний раз редактировалось Wild Bill 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
master
Сообщений: 2167
Зарегистрирован: 09 апр 2006, 21:00

Детский лепет

Сообщение master » 04 авг 2011, 13:37

uxx писал(а):Source of the post b = !(a-1);

тогда уж так
b=!(--a);


grigoriy писал(а):Source of the post не всегда из языковой компактности
следует компактность машинного кода.

Касательно Си, как правило следует. Не всегда следует алгоритмическая оптимальность.
Последний раз редактировалось master 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

Детский лепет

Сообщение Wild Bill » 04 авг 2011, 15:20

master писал(а):Source of the post b=!(--a);
А потом мордобитие при обсуждении --а и а--.
master писал(а):Source of the post
grigoriy писал(а):Source of the post не всегда из языковой компактности следует компактность машинного кода.

Касательно Си, как правило следует. Не всегда следует алгоритмическая оптимальность.
Как правило... Но это правило только для очень хороших специалистов... А если этот код будет выполняться на другой машине? Например, архитектура БЭСМ-6 и EC ЭВМ (IBM/360) очень сильно различаются... Рядовой прикладник эти нюансы не может учесть...
Последний раз редактировалось Wild Bill 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Dragon27
Сообщений: 4395
Зарегистрирован: 10 фев 2010, 21:00

Детский лепет

Сообщение Dragon27 » 04 авг 2011, 15:38

Wild Bill писал(а):Source of the post А потом мордобитие при обсуждении --а и а--.

Только недавно читал
[url=http://forum.ixbt.com/topic.cgi?id=26:37762]http://forum.ixbt.com/topic.cgi?id=26:37762[/url]
Последний раз редактировалось Dragon27 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

k1ng1232
Сообщений: 1673
Зарегистрирован: 21 ноя 2008, 21:00

Детский лепет

Сообщение k1ng1232 » 04 авг 2011, 19:02

на счет оптимальности- все равно есть оптимизатор(какой то лучше какой то чуть хуже),вот например я знаю что компилятор от Intel себя очень хорошо проявляет в области оптимизации кода для различных расчетов
Последний раз редактировалось k1ng1232 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

Детский лепет

Сообщение Wild Bill » 10 авг 2011, 16:18

Конечно, но недаром до сих пор пишут вставки на ассемблере в код. Я не обладаю такими знаниями, оптимизатор всегда сработает лучше меня, но есть же люди, которые пишут, но только для конкретных платформ или с условной компиляцией, когда для каждой платформы компилируется своя часть кода. Чаще всего это не прикладники, а специалисты по численным методам, по написанию программ.
Последний раз редактировалось Wild Bill 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
grigoriy
Сообщений: 11916
Зарегистрирован: 18 ноя 2009, 21:00

Детский лепет

Сообщение grigoriy » 11 авг 2011, 10:52

Wild Bill писал(а):Source of the post
Конечно, но недаром до сих пор пишут вставки на ассемблере в код.

Вспомнилось из какого-то руководства по Паскалю (цитирую не дословно, но 100% по смыслу):
"Эта процедура написана на Ассемблере, чтобы обойти ограничения Паскаля".
Последний раз редактировалось grigoriy 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 33 гостей