Вопросы по С/С++ (СИ)

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Reflector писал(а):У тебя такие штуки одно время даже в подписи стояли
напомню, что там было что-то вроде "4-348--09PO(*&*n@" - это рабочая программа на Си.
это было в подписи в виде сарказма

не думал, что мой сарказм дойдет до стандартизации в С++ :)))
Reflector писал(а):Обычная перегрузка функций
и, по-вашему, это помогает писать программы? и, главное, понимать их со стороны?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

[uquote="ARV",url="/forum/viewtopic.php?p=3707924#p3707924"]но вот вы упомянули лямбды - это что такое?[/uquote]"безымянные функции". Вообще-то - языковые замыкания, но вот такая трактовка уже точно дебри)
[uquote="ARV",url="/forum/viewtopic.php?p=3707924#p3707924"]я с шаблонами до конца не разобрался еще, а тут уже лямбды подоспели. дойду до лямбд - а там уже сигмы какие-нибудь...[/uquote]да и хрен с ними :dont_know: на лямбды большинство программистов пожали плечами и пошли писать дальше без них.[uquote="ARV",url="/forum/viewtopic.php?p=3707924#p3707924"]сколько версий стандарта С++ вышло за последние 3 года?[/uquote]один, С++17. Предыдущий - С++11. Не, был, конечно, С++14, но там изменения косметические. [uquote="ARV",url="/forum/viewtopic.php?p=3707924#p3707924"]и изменения там, как я понимаю, не просто в одной-двух строчках, типа как было на заре Си[/uquote](почти) весь список - https://ru.wikipedia.org/wiki/C%2B%2B17 . Все непонятное (как следствие неиспользования) можете смело игнорировать) БОльшая часть интересностей - в С++11. Как, кстати, и в C11)
там не так уж много меняется.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

arkhnchul писал(а):на лямбды большинство программистов пожали плечами и пошли писать дальше без них
ага, я был одним из них :)))
arkhnchul писал(а):один, С++17
как быстро летит время... казалось, еще вчера С++ 11 был вновинку... :(

Добавлено after 1 minute 3 seconds:
arkhnchul писал(а):Все непонятное (как следствие неиспользования) можете смело игнорировать
целиком игнорирую :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

[uquote="ARV",url="/forum/viewtopic.php?p=3707941#p3707941"]и, по-вашему, это помогает писать программы? и, главное, понимать их со стороны?![/uquote]да. Позволяет не давать разные имена функциям, делающим совершенно одно и то же, но с аргументами разных типов. А с шаблонами - еще и не писать несколько одинаковых функций на каждый тип.
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="ARV",url="/forum/viewtopic.php?p=3707941#p3707941"]это было в подписи в виде сарказма[/uquote]
Ну да, и тема еще была :) В следующий раз как вдохновишься на очередную, можешь взять мою лямбду, я разрешаю :)
Reflector писал(а):и, по-вашему, это помогает писать программы? и, главное, понимать их со стороны?!
Берем более современный язык, например, C#:

Код: Выделить всё

Console.Write($"{1} {'1'} {"1"}");
и получаем: 1 1 1
А что еще должно быть? Три разных типа, но визуальное представление у них одинаковое...
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

arkhnchul писал(а):Позволяет не
я уже восклицал риторически: чтобы понять, почему '1' и 1 для cout (или для оператора сдвига? или оператора чего?) одно и то же, надо прилагать усилия - зачем?! просто объясните мне: зачем я должен думать над этим, если я привык считать '1' и 1 разными данными?!


а теперь. когда я буду писать "в чужую либу" 1 - она тоже будет считать это эквивалентным '1' или не будет? мне теперь всегда напрягаться по этому поводу?! открывать простыни классов и выискивать, не переопределился ли там оператор или функция?! увольте - обойдусь.

когда я в Delphi это переопределение осваивал (по молодости лет), я тоже писал паром в потолок от счастья - во, думал, крутота! и с тех пор ни в одном проекте этим не пользовался, и, когда смотрел исходники библиотек (а их гигабайты у меня), ни в одной этого не встречал.
Reflector писал(а):В следующий раз как вдохновишься на очередную, можешь взять мою лямбду, я разрешаю
мне кажется, я уже нашел подпись на все времена :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=3707957#p3707957"]а теперь. когда я буду писать "в чужую либу" 1 - она тоже будет считать это эквивалентным '1' или не будет? мне теперь всегда напрягаться по этому поводу?![/uquote]А ты что, используешь чужие либы не прочитав описание их функций? Вот просто так, методом тыка?
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

[uquote="ARV",url="/forum/viewtopic.php?p=3707957#p3707957"]чтобы понять, почему '1' и 1 для cout (или для оператора сдвига? или оператора чего?) одно и то же, надо прилагать усилия - зачем?![/uquote]а как вы с printf-ом разбираетесь? там тоже в общем-то все, что за строкой формата, "одно и то же". * и & в С всегда одно и то же означают? ++ всегда на единицу увеличивает? Нашли к чему прикопаться, серьезно.
[uquote="ARV",url="/forum/viewtopic.php?p=3707957#p3707957"]а теперь. когда я буду писать "в чужую либу" 1 - она тоже будет считать это эквивалентным '1' или не будет?[/uquote]документацию посмотреть? Код, если документации нет? Или в С как-то по-другому это делается?
[uquote="ARV",url="/forum/viewtopic.php?p=3707957#p3707957"]когда смотрел исходники библиотек (а их гигабайты у меня), ни в одной этого не встречал.[/uquote]что, и + арифметический не видели ни разу?)
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

arkhnchul писал(а):что, используешь чужие либы не прочитав описание их функций? Вот просто так, методом тыка?
может, мне везло по жизни, но в 80% случаев поведение функции однозначно понятно по её имени. во всяком случае в тех чужих либах, которыми я пользуюсь.

но вот когда я вижу + или & - я уверен (и хочу эту уверенность не терять), что это именно плюс и именно амперсенд, и их поведение/назначение было усвоено мною еще на заре освоения языка. и читать по поводу таких вещей документацию - это не укладывается в мои жизненные принципы.
arkhnchul писал(а):а как вы с printf-ом разбираетесь?
а с ним не надо разбираться: '1' и 1 - это два разных числа, и выводиться они будут по-разному. именно в прогнозируемости поведения без необходимости лопатить доки/сорцы я вижу огромный плюс нормального языка программирования.
arkhnchul писал(а):Или в С как-то по-другому это делается?
см. ранее
arkhnchul писал(а):+ арифметический не видели ни разу?
в Си поведение оператора + описано было еще Керниганом с Ричи. стабильность - признак мастерства :)

Добавлено after 3 minutes 4 seconds:
помнится, для Си существовала (с появлением С++ перестала быть актуальной) шутка
#define TRUE FALSE /* счастливой отладки! */
теперь же я запросто могу переопределить оператор + так, что в итоге он будет давать произведние матриц, а знак * будет давать частное от деления матриц... приписывать "счастливой отладки" не придется.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Аббревиатура, ну естественно, проще жить в уютненьком родном болоте, чем изучать и осознавать новое.
Я хоть и не за плюсы, но твоя позиция априори проигрышная...
Неужели не хочется пощупать новое? Я тут FPGA терзаю, дык приходится многое переосмысливать...
Последний раз редактировалось dosikus Пт сен 27, 2019 07:05:31, всего редактировалось 1 раз.
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=3708033#p3708033"]
arkhnchul писал(а):что, используешь чужие либы не прочитав описание их функций? Вот просто так, методом тыка?
теперь же я запросто могу переопределить оператор + так, что в итоге он будет давать произведние матриц, а знак * будет давать частное от деления матриц... приписывать "счастливой отладки" не придется.[/uquote]В принципе, каждый имеет возможность выстрелить себе в ногу, но делают это только...
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

VladislavS писал(а):но делают это только...
угу.
объяснения, с какого перепугу '1' и 1 оператор << "стандартно" считает одним и тем же, я так и не получил...

все-таки, язык программирования должен быть логически непротиворечивым. если он содержит противоречия с "обычной" логикой (например, что камень падает вниз, что свинец тяжелее воды, что 2+2=4, что пятница после четверга и т.п.), с моей точки зрения это плохо. но, к сожалению, мою точку зрения изобретатели языков не учитывают :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Это что форум чудит? Цитаты другим присваивает.
Давеча лицезрел как рефлектор сам с собой дискутировал. :)))
Друг Кота
Аватара пользователя
Сообщения: 7083
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

кроме того что я должен понять кгда '1' перестала быть равна 0x31, на эти преобразования тратятся и ресурсы мк... или нет?
____
он рефлексировал... :)
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Ivanoff-iv писал(а):на эти преобразования тратятся и ресурсы мк... или нет?
ну, во-первых, cout вы вряд ли в МК будете использовать... а во-вторых, все константы обрабатываются еще на этапе компиляции, так что лишних преобразований МК делать не будет.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

ARV писал(а):cout вы вряд ли в МК будете использовать
Он - может и не будет. Но абдуринщиков, которые printf в микроконтроллер пихают — пруд пруди! Они еще флоаты любят на всяких тиньках... Жестокие!..
Вот такие чуды-юды могут и cout запихнуть в МК! Им-то пофиг, что мигалка светодиодом 128кБ флеша сжирает!

Добавлено after 1 minute 37 seconds:
[uquote="dosikus",url="/forum/viewtopic.php?p=3708045#p3708045"]Это что форум чудит? Цитаты другим присваивает.
Давеча лицезрел как рефлектор сам с собой дискутировал. :)))[/uquote]
Здесь идиотизм с интерфейсом: если ты однократно отвечаешь, нажимая кнопочку "цитата", то кнопочка расположена под сообщением. Но если отвечаешь мультицитированием, то кнопочка над сообщением!
Кто такой маразм придумал — не знаю, но я первые несколько сообщений тоже постоянно не туда жамкал! А в итоге выделенный текст копируется, но автор подставляется не тот...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Eddy_Em писал(а):Но абдуринщиков, которые printf в микроконтроллер пихают — пруд пруди!
скажу больше: я тут многих никак не могу убедить, что printf - удобно, и его не только можно, но и нужно применять в проектах :) видимо, вас наслушались все и корябают свои функции вывода :)

лично я в своих проектах с USART почти всегда использую printf, хотя и для ЖКИ и даже 7-сегментных индикаторов тоже применял :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

printf из stdlib — это же жесточайший оверхед!
Да и на кой черт он нужен, если вывести число в десятичной или 16-ричной системе легко и просто без printf? А флоаты на микроконтроллерах обычно не нужны. Если даже и нужны, то несложно свою функцию вывода накалякать. И флеш в итоге сэкономить можно, и производительность увеличить по сравнению с жирным и тормозным printf'ом.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="ARV",url="/forum/viewtopic.php?p=3708044#p3708044"]объяснения, с какого перепугу '1' и 1 оператор << "стандартно" считает одним и тем же, я так и не получил...
все-таки, язык программирования должен быть логически непротиворечивым.[/uquote]
Получил, но ничего не понял :) Смысл как раз в том, что в отличии от С в С++ оператор << считает '1' и 1 разными сущностями. Оператор - это по сути функция, т.е. можно было бы написать:

Код: Выделить всё

print('1');
print(1);
print("1");
С++ напечатает скучные 1 1 1, так же как практически любой более-менее современный язык. Для С получим 49, 1 и какой-нибудь 536876220. Очень даже логично и непротиворечиво, особенно с точки зрения новичка :) И после этого ты еще доказываешь, что то был сарказм и на самом деле тебе не нравятся штуки которые работают непонятно как или почему :)

Добавлено after 25 minutes 8 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3708063#p3708063"]printf из stdlib — это же жесточайший оверхед!
Да и на кой черт он нужен, если вывести число в десятичной или 16-ричной системе легко и просто без printf? А флоаты на микроконтроллерах обычно не нужны.[/uquote]
Если вдруг флоаты нужны, то думаю далеко не все знают, что printf в принципе не способен с ними работать и дело не в самой функции, просто если используется переменное число параметров, то числа с плавающей точкой там передаются как double.
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Сообщение ПростоНуб »

Reflector, мало того, что функции print() в стандарте С нет и я даже не представляю, откуда Вы ее вытащили, так ещё заставить компилятор спокойно конвертировать число в указатель или наоборот надо очень настойчиво попросить )
Ответить

Вернуться в «Разные вопросы по МК»