...и один из мировых лидеров производителей SoC на ARM предлагал добавлять в код ядра линукс такое:
(это я взял рафинированный пример, где ни добавить, ни убавить; в последних версиях ядра, как можно догадаться, этот тип упразднён с заменой на bool)
P.S.: Дорогие френды! Обескуражен реакцией на публикацию.
На просьбу о помощи - никто не отреагировал (по крайней мере, в он-лайне), а тут, на какое-то снобистское ворчание - уже трое высказали своё несогласие с посылкой поста.
Видимо, всё же я - сошёл с ума... :-(
Мне и вправду сейчас на испытательном сроке - нелегко.
enum enable_disable_t {
DISABLE,
ENABLE
};https://gitorious.org/medium_platform/linux/source/69a118f042a7b05b831e07348e0a8ed3142f3923:include/media/davinci/dm365_ipipe.h#L1164(это я взял рафинированный пример, где ни добавить, ни убавить; в последних версиях ядра, как можно догадаться, этот тип упразднён с заменой на bool)
P.S.: Дорогие френды! Обескуражен реакцией на публикацию.
На просьбу о помощи - никто не отреагировал (по крайней мере, в он-лайне), а тут, на какое-то снобистское ворчание - уже трое высказали своё несогласие с посылкой поста.
Видимо, всё же я - сошёл с ума... :-(
Мне и вправду сейчас на испытательном сроке - нелегко.
no subject
Date: 2014-12-17 12:59 am (UTC)Re: не вижÑ, как ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·
Date: 2014-12-17 01:04 am (UTC)Ðно даже int'ом можеÑ, Ð¼Ð¾Ð¶ÐµÑ Ð¸ char'ом (Ñем они же внÑÑÑи полÑзÑÑÑÑÑ).
Ð ÑÐ²Ð¾Ñ Ð¾ÑеÑедÑ, Ñ Ð½Ðµ понимаÑ, оÑкÑда Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ ÑÑÐ¾Ñ Ð²Ð¾Ð¿ÑоÑ?
Чем не Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ 1 Ð´Ð»Ñ ENABLE и 0 Ð´Ð»Ñ DISABLE?
Ðли Ñ ÑÑо-Ñо пеÑеÑÑал понимаÑÑ Ð² Ð¸Ð´Ð¸Ð¾Ð¼Ð°Ñ Plain C...
Re: не вижÑ, как ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·
Date: 2014-12-17 01:07 am (UTC)ÐÐ´Ð¸Ð¾Ð¼Ñ plain C Ñже давно пÑÐ¾ÐµÑ Ð°Ð»Ð¸; ÑÑо вÑоде аÑиÑмомеÑÑа ÑÑо-Ñо.
Re: не вижÑ, как ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·
Date: 2014-12-17 01:10 am (UTC)Я Ñад "пÑÐ¾ÐµÑ Ð°ÑÑ"...
Ðо ÑÑо - код ÑдÑа ÐинÑкÑ.
Ðли Ñ ÑÑо-Ñо опÑÑÑ Ð½Ðµ понимаÑ?
ÐеÑепиÑÑваем его на _нÑжное_подÑеÑкнÑÑ_ или вÑкидÑваем?
Я боÑÑÑ, ÑÑо Ð¼ÐµÐ½Ñ ÑабоÑодаÑÐµÐ»Ñ Ð½Ðµ поймÑÑ, еÑли Ñ Ð²Ð¼ÐµÑÑо иÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð° на Plain C в ÑдÑе ÐÑнкÑа ÑÐºÐ°Ð¶Ñ ÐµÐ¼Ñ Ð²Ð¾Ñ Ñак Ð²Ð¾Ñ - "пÑÐ¾ÐµÑ Ð°Ð»Ð¸..."
Re: не вижу, как это может быть заменено булевым.
Date: 2014-12-17 01:42 am (UTC)Я с самого начала упомянул, что речь идёт о ядре Линукс, даже в метках указал linux и plain c.
И это замечание считаю несостоятельным, а приведённый мною пример кода - глупостью.
Re: Ð, Ñ Ð¼, и Ñо? Я не вижÑ, ...
Date: 2014-12-17 01:07 am (UTC)Ðогда в ÑзÑке Ð½ÐµÑ Ð¿ÑоÑÑÑанÑÑв имÑн, вводиÑÑ ÑакÑÑ Ð¾Ð±ÑÑÑ ÑÑÑÐºÑ Ñ Ñакими именами - как-Ñо неÑаÑионалÑно, ÑÑо ли...
Re: Ð, Ñ Ð¼, и Ñо? Я не вижÑ, ...
Date: 2014-12-17 01:10 am (UTC)ÐеÑ, Ñ, конеÑно, лÑÐ±Ð»Ñ Ð´Ð¶Ð°Ð²Ð°ÑкÑипÑ; но и Ñам лÑÑÑе имена даÑÑ Ð²ÐµÑам, ÑÑоб знаÑÑ, Ñ Ñем имееÑÑ Ð´ÐµÐ»Ð¾.
Re: Ð, Ñ Ð¼, и Ñо? Я не вижÑ, ...
Date: 2014-12-17 01:12 am (UTC)Re: Э, хм, и чо? Я не вижу, ...
Date: 2014-12-17 01:19 am (UTC)no subject
Date: 2014-12-17 05:21 am (UTC)Re: В чём значимость этого? Мне в Linux понравилась поддерж
Date: 2014-12-17 08:00 am (UTC)Ну, я там объясняю, что в последних версиях - bool:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/staging/media/davinci_vpfe/dm365_resizer.h?id=45e46b3bbe187a1bfc8f44c8d7ceaf851f0f4219
А по поводу вкусностей: в Линухе их хватает...
Re: В чём значимость этого? Мне в Linux понравилась поддерж
Date: 2014-12-17 04:31 pm (UTC)Re: В чём значимость этого? Мне в Linux понравилась поддерж
Date: 2014-12-17 10:27 pm (UTC)Вообще, не понятно, для чего вводить перечисление true_false_t с ровно (какое совершенно случайное совпадение с именем перечисления!) двумя членами?
Или, on_off_t?
Чтобы в будущем иметь возможность его расширить или сократить? :-)
Re: В чём значимость этого? Мне в Linux понравилась поддерж
Date: 2014-12-17 10:30 pm (UTC)Re: В чём значимость этого? Мне в Linux понравилась поддерж
Date: 2014-12-17 10:38 pm (UTC)Некоторые, вон, факи показывают публично... ;-)
"Добрейшей души человек! А ведь мог бы и бритвой по горлу!.."
no subject
Date: 2014-12-17 09:57 am (UTC)Сейчас enable/disable, потом появится какой starting или shut_down, и где-то надо передать unknown.
Уж проще один раз завести енам или маску и не париться.
Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-17 10:18 pm (UTC)Я просто хочу знать, вот, честно, если ты только не троллишь... Ты уверен, что какой-нибудь "starting", как ты говоришь, или там "shut_down" - это хороший претендент на членство в перечислении с именем "enable_disable_t"?
Где логика?! Разве названием перечисления - не всё ещё сказано о возможных значениях?..
Может, ты ещё предложишь это переписать на Яве, так, на всякий случай, а? ;-)
А ещё лучше - на Хаскеле! Всё ядро, не считая модулей... :-D
Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-17 11:04 pm (UTC)Потом его переименовать в status_t и расширить, Вместо протягивания очередного булеана. Именно так поддерживать и расширять функциональность.
Аргумент про пространство имён -- принимаю, да.
Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-17 11:11 pm (UTC)Если бы потом это (см. по ссылкам вверху) переросло во что-то, отличающееся от булеан - я с тобой согласен (да, я со всеми с вами согласен!), но тут и назвали и использовали именно, как "enum true_false_t" с исключительно двумя элементами "true" и "false"!
Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-18 08:08 am (UTC)Нечитаемый, нерасширяемый булеан -- нехорошо. Маска, енам -- хорошо. Это как мыть руки перед едой.
Дальше уже проблемы языка (пространства имён).
Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-18 11:51 am (UTC)Надо будет спросить, какую IDE используют для разработки ядра Линукс и драйверов под него.
Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-18 04:07 pm (UTC)Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-18 08:16 pm (UTC)Ничего против развесистых перечислений с внятными значениями - я не имею. Но люди с этим перечислением с кричащим названием изначально шли на изобретение булевского типа, не говоря уже о проблемах с короткими распространёнными именами.
И, да, я умею пользоваться и консольными утилитами, и некоторыми IDE, в том числе недо-IDE.
Заглянул в https://www.kernel.org/doc/Documentation/CodingStyle из которого сделал вывод, что автор всё же предпочитает пользоваться emacs'ом.
Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-18 12:56 pm (UTC)А про bool я считаю что его нужно использовать только там где у нас логическое выражение. Состояние никак не может быть логическим выражением и bool тут не место. Кстати именно по этому я предпочитаю писать if (a == 0) а не if (!a).
Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-18 04:09 pm (UTC)Так ещё читабельнее. Проверка, скажем какой маски или енама так становится ещё намного читабельнее и расширяемее. Пусть там унутри будет простая проверка типа return 0==a; для начала, пусть. Хороший компайлер один хрен соптимизирует.
Re: нормульно. Как раз пихать булеан по любому поводу —
Date: 2014-12-18 08:18 pm (UTC)Извиняюсь за некропост
Date: 2015-10-07 07:00 pm (UTC)Re: Извиняюсь за некропост
Date: 2015-10-07 07:48 pm (UTC)Неужели - нет?!
Не верю.