-
- Кстати, вот так вот веселей: MAX(a++, --a) - Eddy_Em(19.03.2025 13:41)
- Самое удивительное в этой истории, что именно на этом примере в любом приличном учебнике по С, начиная с Кернигана,Ритчи,
разъясняется опасность такого рода макроопределений из за побочных
эффектов при вычислении аргументов. - ЫЫyкпy(19.03.2025 12:37)
- Самое смешное в этой истории, что аффтары языка задрачивались с
лаконичностью записи, чтоб один значок мог обозначить охулиард
операций, а пейсатели пишут имена переменных, как названия
средневековых романов
(легенда_о_благородном_рыцаре_Айвенго_доблестном_Короле_Артуре_и_рыцарях_круглого_стола),
и вся эта лаконичность никому не всралась. - Kpoк(19.03.2025 13:58)
- Авторы языка имели на все хотелки 32к ОЗУ, пару мегагерц процессора
и катушку магнитной ленты. Отсюда все странности языка. - LightElf(19.03.2025 16:15)
- Да ладно, капитан! - Kpoк(19.03.2025 18:22)
- Бери выше, адмирал! - LightElf(19.03.2025 19:01)
- Адмирал Очевидность? - Kpoк(19.03.2025 21:07)
- Абмирал Ясен %!!! - mse homjak(19.03.2025 21:57)
- Адмирал Очевидность? - Kpoк(19.03.2025 21:07)
- Бери выше, адмирал! - LightElf(19.03.2025 19:01)
- Да ладно, капитан! - Kpoк(19.03.2025 18:22)
- Быстрее поверю, что они подстраивались под инструкции подручного
проца (с инкрементом/декрементом). С тех пор много воды утекло,
давно не актуально. - SciFi(19.03.2025 14:01)
- Авторы писали ОСь, но их ломало писать на АСМе PDP11 , поэтому они
сделали макроассемблер очень похожий на язык высокого уровня.
Отсюда составные операторы, инклуды вместо модулей, строки
заканчивающиеся нулём и массивы без контроля границ и пр. - =AlexD=(19.03.2025 14:35)
- Нашёл интересный текст про достижение Денниса Ричи: SciFi(1999 знак., 19.03.2025 14:53, ссылка)
- Ох уж эти восторженные последователи... сами авторы просто хотели
играть на университетской ЭВМ. Мало кто сейчас заявит, что
отсутствие конкретной разрядности у стандартных типов - это большое
благо. Если код компилируется - это не значит что он работает. - =AlexD=(19.03.2025 15:10)
- А кто заявлял, что "отсутствие конкретной разрядности у стандартных
типов - это большое благо"? Поднимите мне веки. - SciFi(19.03.2025 15:12)
- Ну там же приводится пример с 18 разрядными машинами и пр. Но так и
не говорится, был ли на них портирован Си, или они так и ушли в
музей с ассемблерными приложениями? Сдаётся мне что Си пошёл в
народ в первую очередь как стандартный язык UNIX систем. - =AlexD=(19.03.2025 15:19)
- Это сейчас вопрос восьми битов в байте улажен. И уже не Си делается
для процов, а процы для Сей :-) А тогда индустрия зарождалась, всё
было новое и разное. Прекрасное время для первооткрывателей. - SciFi(19.03.2025 15:59)
- Скажем так, появление индустриального стандарта в виде UNIX+Си
сделало существование всякой неведомой хни бессмысленным. Дольше
всех сопротивлялась IBM, но у них как-раз кривых архитектур я не
помню. Разве что кодировку EBCDIC вспомнить. - =AlexD=(19.03.2025 16:22)
- IBM не только не сопротивлялись, но и запустили семейство S/360,
даже раньше чем DEC свои PDP-11. В начале 70-х стало очевидно что
будущее за машинами с 8-битовыми байтами и с байтовой адресацией
памяти. Что же до "индустриального стандарта UNIX+Си", то он и по
сей день существует только в фантазиях самых упоротых линуксоидов.
За то, что Unix вышел за пределы Bell Labs и распространился по
университетам благодарить надо в первую очередь Министерство
юстиции США. - ЫЫyкпy(19.03.2025 21:27)
- "но у них как-раз кривых архитектур я не помню" - это про то и есть. То что крупные компании зубами держались за собственные ОСи это и так понятно, но таки сдались и даже IBM. =AlexD=(156 знак., 20.03.2025 08:59)
- На каналье "PROhiTech"(не дословно), на Ютупе, есть ролик про всё это. С датами и какими-никакими мукументами. - mse homjak(19.03.2025 22:00)
- IBM не только не сопротивлялись, но и запустили семейство S/360,
даже раньше чем DEC свои PDP-11. В начале 70-х стало очевидно что
будущее за машинами с 8-битовыми байтами и с байтовой адресацией
памяти. Что же до "индустриального стандарта UNIX+Си", то он и по
сей день существует только в фантазиях самых упоротых линуксоидов.
За то, что Unix вышел за пределы Bell Labs и распространился по
университетам благодарить надо в первую очередь Министерство
юстиции США. - ЫЫyкпy(19.03.2025 21:27)
- Скажем так, появление индустриального стандарта в виде UNIX+Си
сделало существование всякой неведомой хни бессмысленным. Дольше
всех сопротивлялась IBM, но у них как-раз кривых архитектур я не
помню. Разве что кодировку EBCDIC вспомнить. - =AlexD=(19.03.2025 16:22)
- Это сейчас вопрос восьми битов в байте улажен. И уже не Си делается
для процов, а процы для Сей :-) А тогда индустрия зарождалась, всё
было новое и разное. Прекрасное время для первооткрывателей. - SciFi(19.03.2025 15:59)
- Ну там же приводится пример с 18 разрядными машинами и пр. Но так и
не говорится, был ли на них портирован Си, или они так и ушли в
музей с ассемблерными приложениями? Сдаётся мне что Си пошёл в
народ в первую очередь как стандартный язык UNIX систем. - =AlexD=(19.03.2025 15:19)
- А кто заявлял, что "отсутствие конкретной разрядности у стандартных
типов - это большое благо"? Поднимите мне веки. - SciFi(19.03.2025 15:12)
- Ох уж эти восторженные последователи... сами авторы просто хотели
играть на университетской ЭВМ. Мало кто сейчас заявит, что
отсутствие конкретной разрядности у стандартных типов - это большое
благо. Если код компилируется - это не значит что он работает. - =AlexD=(19.03.2025 15:10)
- Нашёл интересный текст про достижение Денниса Ричи: SciFi(1999 знак., 19.03.2025 14:53, ссылка)
- Авторы писали ОСь, но их ломало писать на АСМе PDP11 , поэтому они
сделали макроассемблер очень похожий на язык высокого уровня.
Отсюда составные операторы, инклуды вместо модулей, строки
заканчивающиеся нулём и массивы без контроля границ и пр. - =AlexD=(19.03.2025 14:35)
- Авторы языка имели на все хотелки 32к ОЗУ, пару мегагерц процессора
и катушку магнитной ленты. Отсюда все странности языка. - LightElf(19.03.2025 16:15)
- Самое смешное в этой истории, что аффтары языка задрачивались с
лаконичностью записи, чтоб один значок мог обозначить охулиард
операций, а пейсатели пишут имена переменных, как названия
средневековых романов
(легенда_о_благородном_рыцаре_Айвенго_доблестном_Короле_Артуре_и_рыцарях_круглого_стола),
и вся эта лаконичность никому не всралась. - Kpoк(19.03.2025 13:58)
- а как правильно? - LordN(17.03.2025 16:33)
- На Паскале. - Kpoк(19.03.2025 13:52)
- или на калькуляторе? - LordN(19.03.2025 16:49)
- Б3-21 - Kpoк(19.03.2025 17:47)
- или на калькуляторе? - LordN(19.03.2025 16:49)
- Хорошее уточнение. Пожалуй, даже лучше начального поста. Если
вспомнить о том, что это макрос и он разворачивается, посмотреть
его тело - ничего неожиданного не будет. Но ожидаемая логика работы как для функции: сравниваем два значения, брём
максимальное и после этого увеличиваем сравниваемые. ИНС
сформулировал очень правильную рекомендацию: "Макросы не должны
использоваться с выражениями, которые имеют побочные эффекты". PS:
А есть ещё люди, которые макросы пишут Dingo(51 знак., 18.03.2025 06:55)
- Это вид спорта со своими соревнованиями и чемпионами: SciFi(1 знак., 18.03.2025 08:07, ссылка)
- а-ху-е-ть LordN(33 знак., 18.03.2025 09:44)
- Меня больше впечатляют соревнования по скоростному поеданию блинов.
Со смертельными исходами. - SciFi(18.03.2025 09:50)
- Если халява, я бы попробовал, но за победой не гонюсь, главное
участие. ) - Andreas(18.03.2025 10:00)
- абсолютбл солидарен! LordN(59 знак., 18.03.2025 10:22)
- Если халява, я бы попробовал, но за победой не гонюсь, главное
участие. ) - Andreas(18.03.2025 10:00)
- Меня больше впечатляют соревнования по скоростному поеданию блинов.
Со смертельными исходами. - SciFi(18.03.2025 09:50)
- а-ху-е-ть LordN(33 знак., 18.03.2025 09:44)
- Это вид спорта со своими соревнованиями и чемпионами: SciFi(1 знак., 18.03.2025 08:07, ссылка)
- Как в анекдоте, по-человечески надо ебстись. - mr-x(17.03.2025 19:37)
- Предки давно говорили: LightElf(15 знак., 22.03.2025 15:51, картинка)
- Так - никак, как оказалось ))) Только функцию, а не макрос. POV(1 знак., 17.03.2025 16:55, ссылка)
- т.е. правильно сперва сделать инкременты и уже потом пихать их в макрос или наеборот, сперва макрос, а потом уже они. LordN(139 знак., 18.03.2025 06:17)
- На Паскале. - Kpoк(19.03.2025 13:52)
- Потому что не надо поисковик ИИ называть. - VladislavS.(17.03.2025 16:22)
- Я попросил его уточнить... POV(40 знак., 17.03.2025 15:36, картинка, картинка)
- Раньше приходили на форум с вопросом, теперь приходят с ответом
;-)) - =AlexD=(17.03.2025 15:46)
- хвалятся кто заковырестее запрос написал )) - POV(17.03.2025 15:49)
- Промпт-инженер! SciFi(2 знак., 17.03.2025 15:59, ссылка, картинка)
- ++ - bnb62(17.03.2025 16:31)
- ответ локального дикпика POV(193 знак., 17.03.2025 15:59)
- добавил ему токентов POV(235 знак., 17.03.2025 16:07)
- Промпт-инженер! SciFi(2 знак., 17.03.2025 15:59, ссылка, картинка)
- хвалятся кто заковырестее запрос написал )) - POV(17.03.2025 15:49)
- Раньше приходили на форум с вопросом, теперь приходят с ответом
;-)) - =AlexD=(17.03.2025 15:46)
- Вот, я его попросил, и он мне такую портянку накатал: Eddy_Em(1440 знак., 17.03.2025 15:09)
- И на вопрос: "And what to do if data types of a and b are
different?" родил такой шедевр: Eddy_Em(1688 знак., 17.03.2025 16:08)
- Ещё бы оно компилировалосб VladislavS.(4 знак., 17.03.2025 17:19, ссылка)
- Странно, внешне выглядит правильно. Eddy_Em(70 знак., 17.03.2025 18:43)
- Что правильного-то? В _Generic после типа должно стоять выражение.
int16_t : int16_t - бред собачий LightElf(1 знак., 17.03.2025 19:39, ссылка)
- Оно таки справилось! Eddy_Em(2736 знак., 17.03.2025 20:11)
- И даже с тестовой от SciFi справилось symbions(86 знак., 18.03.2025 17:09, ссылка)
- Ну это же антипатерн программирования! Сравненивать разные типы
даже не крякнув. Так нельзя. Программист должен указать как
сравнивать. - VladislavS.(17.03.2025 20:37)
- Естественно, переводя к бóльшему типу. - Eddy_Em(17.03.2025 21:06)
- Во-первых, это неестественно. Во-вторых, типов сильно больше. - VladislavS.(18.03.2025 00:58)
- Ну куда уж больше! Основных типов немного: 4 знаковых, 4
беззнаковых, float и double. Все, что дальше - уже редкость. Eddy_Em(36 знак., 18.03.2025 09:09)
- Смотри какая красота VladislavS.(1 знак., 18.03.2025 11:38, картинка)
- Ну вот не надо издеваться: в С с комплексными числами как-то не
очень задалось. Возможно, и дженерики не спасут (хотя, надо
проверить) для "перегрузки" тех же синусов/экспонент и т.п. на
комплексные числа. - Eddy_Em(18.03.2025 14:43)
- Дженерики для того и придумали, чтобы <tgmath.h> можно
было на C написать. - LightElf(18.03.2025 14:57)
- ХЗ, впервые о таком инклюднике слышу. Когда мне нужны были БПФ и
комплексные числа, я просто пользовался fftw3 и GSL… - Eddy_Em(18.03.2025 16:08)
- Ну шо я могу поделать с людьми, не читающими стандарт? LightElf(1 знак., 18.03.2025 19:27, ссылка)
- Завидовать - Kpoк(19.03.2025 10:40)
- Щикарно, но не очень полезно, пока это не перекочует в базовые
математические библиотеки. - Eddy_Em(18.03.2025 22:22)
- Думаю, что если за прошедшие 25 лет оно не дошло до базовых библиотек - оно уже и не дойдет. - LightElf(19.03.2025 16:16)
- Ну шо я могу поделать с людьми, не читающими стандарт? LightElf(1 знак., 18.03.2025 19:27, ссылка)
- ХЗ, впервые о таком инклюднике слышу. Когда мне нужны были БПФ и
комплексные числа, я просто пользовался fftw3 и GSL… - Eddy_Em(18.03.2025 16:08)
- Дженерики для того и придумали, чтобы <tgmath.h> можно
было на C написать. - LightElf(18.03.2025 14:57)
- Ну вот не надо издеваться: в С с комплексными числами как-то не
очень задалось. Возможно, и дженерики не спасут (хотя, надо
проверить) для "перегрузки" тех же синусов/экспонент и т.п. на
комплексные числа. - Eddy_Em(18.03.2025 14:43)
- Смотри какая красота VladislavS.(1 знак., 18.03.2025 11:38, картинка)
- Ну куда уж больше! Основных типов немного: 4 знаковых, 4
беззнаковых, float и double. Все, что дальше - уже редкость. Eddy_Em(36 знак., 18.03.2025 09:09)
- Во-первых, это неестественно. Во-вторых, типов сильно больше. - VladislavS.(18.03.2025 00:58)
- Естественно, переводя к бóльшему типу. - Eddy_Em(17.03.2025 21:06)
- Оно таки справилось! Eddy_Em(2736 знак., 17.03.2025 20:11)
- Что правильного-то? В _Generic после типа должно стоять выражение.
int16_t : int16_t - бред собачий LightElf(1 знак., 17.03.2025 19:39, ссылка)
- На каком вообще это языке? - =AlexD=(17.03.2025 17:48)
- Уверяют, что на самом понятном в мире Си. - VladislavS.(17.03.2025 17:54)
- Странно, внешне выглядит правильно. Eddy_Em(70 знак., 17.03.2025 18:43)
- Ещё бы оно компилировалосб VladislavS.(4 знак., 17.03.2025 17:19, ссылка)
- И на вопрос: "And what to do if data types of a and b are
different?" родил такой шедевр: Eddy_Em(1688 знак., 17.03.2025 16:08)
- и всё же - какой был запрос? - POV(17.03.2025 12:47)
- Препроцессор - это атавизм. Нужен лишь для совместимости со старыми
исходниками. В современном С++ он не нужен. Ale3000(41 знак., 17.03.2025 12:03)
- В плюсах уже всё придумано до нас VladislavS.(11 знак., 17.03.2025 16:10, ссылка)
- Что есть в std все знают. Тут топик по глюкам дикпика прмиенительно к макросу в СИ. - POV(17.03.2025 16:11)
- В плюсах уже всё придумано до нас VladislavS.(11 знак., 17.03.2025 16:10, ссылка)
- Ну так нужно иметь же в виду, определяется это функцией или
макросом. Eddy_Em(340 знак., 17.03.2025 12:02)
- на шаблонах это было бы проще - AlexG(17.03.2025 12:05)
- Понятное дело. Только в С нет шаблонов. И перегрузки операций нет, вот, только генерики завезли… - Eddy_Em(17.03.2025 14:03)
- чего проще-то? в чем ИИ облажался.. и да, ТС не озвучил свой
запрос, чего он там просил у дедушки мороза - POV(17.03.2025 12:08)
- Того и проще. Более того, в стандартной библиотеке он уже есть. VladislavS.(97 знак., 17.03.2025 16:13)
- на шаблонах это было бы проще - AlexG(17.03.2025 12:05)
- Я с дипсиком солидарен в этом вопросе. Отсеивать халявщиков без пощады. - SciFi(17.03.2025 12:01)
- поясните. все остальные стесняются попросить. - Ralex(17.03.2025 11:56)
- вово.. косяк-то в чем? постфиксная операция не входят в MAX? а
дикпик тут причем? - POV(17.03.2025 11:59)
- Ты число подстановок посчитай. - Cкpипaч(17.03.2025 12:37)
- подсчитал. и? - POV(17.03.2025 12:39)
- смотри сюда: SciFi(1 знак., 17.03.2025 12:41, ссылка)
- Более того, не только двойной инкремент производится, так ещё и не равномерный. Да, косяк тяжелый. - Ralex(17.03.2025 12:47)
- ааа, вот щас как понял - POV(17.03.2025 12:45)
- В сравнении один инкремент, в подстановке - другой. - Cкpипaч(17.03.2025 12:41)
- Инкремент будет после ";". MAX выполнится как надо. Косяк-то в чём? - POV(17.03.2025 12:42)
- SciFi уже все
на пальцахпоказал. - Cкpипaч(17.03.2025 12:47)
- SciFi уже все
- Инкремент будет после ";". MAX выполнится как надо. Косяк-то в чём? - POV(17.03.2025 12:42)
- смотри сюда: SciFi(1 знак., 17.03.2025 12:41, ссылка)
- подсчитал. и? - POV(17.03.2025 12:39)
- Ты число подстановок посчитай. - Cкpипaч(17.03.2025 12:37)
- вово.. косяк-то в чем? постфиксная операция не входят в MAX? а
дикпик тут причем? - POV(17.03.2025 11:59)