Вопросы по С/С++ (СИ)
Re: Вопросы по С/С++ (СИ)
[uquote="VladislavS",url="/forum/viewtopic.php?p=3706045#p3706045"]пока не будет ссылки на более менее авторитетное исследование говорящее о вреде такого подхода, все это бла-бла-бла[/uquote]вам нужна ссылка на авторитетное мнение по поводу того, зачем вообще придумали всякие единицы трансляции, подключаемые библиотеки, классы там какие-то с методами, вместо того, чтобы просто вызывать глобально определенные функции для манипуляций над глобально определенными переменными? На кого-нибудь, кто исследовал общеинженерный/познавательный подход "подели сложную систему на отделенные друг от друга простые части"?
не, не дам. Буду гордо нести звание пизбалабола.
[uquote="VladislavS",url="/forum/viewtopic.php?p=3706045#p3706045"]существует приём сборки проекта, когда все исходники собирают в одну большею кучу, которую скармливают компилятору. Так достигается максимальная оптимизация. Этим пользуются достаточно серьёзные проекты, поищите.[/uquote]да, я в курсе.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3706049#p3706049"]Не понимаю, как сочетать компиляцию всех исходников при сборке и серьёзный проект[/uquote]уходят от этапа компоновки на этапе сборки и, иногда, динамической компоновки в дальнейшем, получая монолитный объектник. Это на самом деле быстрее, чем компилять кучу мелких объектников и потом собирать их в кучу. Не обязательно пересобирать вообще абсолютно все на каждый чих - только тот набор исходников, из которого получается какой-нибудь из крупных объектников проекта.
не, не дам. Буду гордо нести звание пизбалабола.
[uquote="VladislavS",url="/forum/viewtopic.php?p=3706045#p3706045"]существует приём сборки проекта, когда все исходники собирают в одну большею кучу, которую скармливают компилятору. Так достигается максимальная оптимизация. Этим пользуются достаточно серьёзные проекты, поищите.[/uquote]да, я в курсе.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3706049#p3706049"]Не понимаю, как сочетать компиляцию всех исходников при сборке и серьёзный проект[/uquote]уходят от этапа компоновки на этапе сборки и, иногда, динамической компоновки в дальнейшем, получая монолитный объектник. Это на самом деле быстрее, чем компилять кучу мелких объектников и потом собирать их в кучу. Не обязательно пересобирать вообще абсолютно все на каждый чих - только тот набор исходников, из которого получается какой-нибудь из крупных объектников проекта.
- Реклама
Re: Вопросы по С/С++ (СИ)
[uquote="ARV",url="/forum/viewtopic.php?p=3706067#p3706067"]видите ли в чем дело: мою терминологию поймет даже непрограммист, если он владеет русским языком, и при этом ему не потребуется рыться в гугле или вики. терминология же, требующая даже от специаста уточнений - плохая терминология.[/uquote]
"Непрограммист" не будет знать в чем разница. Язык C пока как бы не стал разговорным, чтобы на нём интуитивно писать. А программист не поймет, потому что знает другие определения. Я вот вас бы без вашего же описания не понял бы.
[uquote="ARV",url="/forum/viewtopic.php?p=3706067#p3706067"]вот именно об этом я и говорил - самого первого переводчика стандарта Си никто не поправил, а сам он не стал лишний раз перечитывать, и вот... имеем то, что имеем
[/uquote]
На английском тоже очень знаете ли похоже и "мутно" звучит. И тоже многие путаются. Тем не менее в английском закреплены данные слова в стандарте. Вам их, равно как и уже устоявшийся перевод на русский, уже всё-равно не изменить на весь мир. Уж лучше смириться и использовать принятые стандартом термины. Иначе будете говорить на разных языках.
"Непрограммист" не будет знать в чем разница. Язык C пока как бы не стал разговорным, чтобы на нём интуитивно писать. А программист не поймет, потому что знает другие определения. Я вот вас бы без вашего же описания не понял бы.
[uquote="ARV",url="/forum/viewtopic.php?p=3706067#p3706067"]вот именно об этом я и говорил - самого первого переводчика стандарта Си никто не поправил, а сам он не стал лишний раз перечитывать, и вот... имеем то, что имеем
На английском тоже очень знаете ли похоже и "мутно" звучит. И тоже многие путаются. Тем не менее в английском закреплены данные слова в стандарте. Вам их, равно как и уже устоявшийся перевод на русский, уже всё-равно не изменить на весь мир. Уж лучше смириться и использовать принятые стандартом термины. Иначе будете говорить на разных языках.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Вопросы по С/С++ (СИ)
arkhnchul, ну вот смотри. В классическом С подход "раздёляй и властвуй" был единственно возможным. Прячешь реализацию в единице компиляции, выставляя наружу только интерфейс через extern и прототипы функций. Ну тут никуда не денешься, сиди и руками все "клей". Потом появился С++ с ООП, первым постулатом которого была инкапсуляция. Мы уже могли в класс прятать данные и методы и даже делать их private, чтобы уж точно никто их случайно потрогать не мог. Но всё равно, этого оказалось мало, глобальная область осталась так же не защищена. И тогда появляется namespace, под которую мы можем прятать всё что не должно быть просто так доступно во избежании конфликтов. Но если такая необходимость появляется, то доступ возможен. И примеров когда это удобно и совершенно безопасно можно привести множество.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Вопросы по С/С++ (СИ)
[uquote="Reflector",url="/forum/viewtopic.php?p=3706065#p3706065"]Один из примеров - это sqlite[/uquote]
Такое ощущение, что он и единственный. Кроме него только мелочевку какую-то нашел.
И совершенно не понятно, как это слияние может повлиять на скорость выполнения? Ну размер еще компилятор может уменьшить, найдя дуплицирующийся код, если таковой имеется. Но скорость то как?
VladislavS, Вы бы попробовали скомпилировать, например, тот же GCC сам собой. Тогда бы прочуствовали соотношение по времени между компиляцией и компоновкой. Я то его сборку наблюдал многократно.
Такое ощущение, что он и единственный. Кроме него только мелочевку какую-то нашел.
И совершенно не понятно, как это слияние может повлиять на скорость выполнения? Ну размер еще компилятор может уменьшить, найдя дуплицирующийся код, если таковой имеется. Но скорость то как?
VladislavS, Вы бы попробовали скомпилировать, например, тот же GCC сам собой. Тогда бы прочуствовали соотношение по времени между компиляцией и компоновкой. Я то его сборку наблюдал многократно.
Re: Вопросы по С/С++ (СИ)
VladislavS, мы, кажца, про разные вещи спорим. Когда все делают доступным везде, то обычно этим таки пользуются - зачем иначе городить огороды? - и тут блин начинается. Драйвер вывода на индикатор пинает термометры, потому что почему бы и нет, "ну он же только их показания выводит"(с). Функции подсчета CRC сами молча дописывают результат в конец буфера, "так она ж исключительно здесь используется, чего париться". Методы класса игнорируют собственные поля, ненуачо, "конфигурация же глобальная, какой идиот передаст что-то другое в конструктор". Такое вот все. Хочется полюбоваться вблизи на авторов сих идей и пожать их крепкие мужественные шеи.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3706091#p3706091"]И совершенно не понятно, как это слияние может повлиять на скорость выполнения?[/uquote]компилятор обычно будет поумнее, чем программист линкер. Да навскидку даже тупо инлайнить мелкие функции, которые иначе были бы в другом объектнике и вызывались как положено, с толком и расстановкой - уже хлеб.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3706091#p3706091"]Вы бы попробовали скомпилировать, например, тот же GCC сам собой. Тогда бы прочуствовали соотношение по времени между компиляцией и компоновкой.[/uquote]сия метОда была придумана задолго до SSD и гигабайт оберативы под кэши) компоновка мелочни, равно как и запись временных файлов после препроцессора (не все умели обходиться без них) - интенсивные дисковые операции.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3706091#p3706091"]И совершенно не понятно, как это слияние может повлиять на скорость выполнения?[/uquote]компилятор обычно будет поумнее, чем программист линкер. Да навскидку даже тупо инлайнить мелкие функции, которые иначе были бы в другом объектнике и вызывались как положено, с толком и расстановкой - уже хлеб.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3706091#p3706091"]Вы бы попробовали скомпилировать, например, тот же GCC сам собой. Тогда бы прочуствовали соотношение по времени между компиляцией и компоновкой.[/uquote]сия метОда была придумана задолго до SSD и гигабайт оберативы под кэши) компоновка мелочни, равно как и запись временных файлов после препроцессора (не все умели обходиться без них) - интенсивные дисковые операции.
- Реклама
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Вопросы по С/С++ (СИ)
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3706091#p3706091"]VladislavS, Вы бы попробовали скомпилировать, например, тот же GCC сам собой. Тогда бы прочуствовали соотношение по времени между компиляцией и компоновкой. Я то его сборку наблюдал многократно.[/uquote]Ну GCC я сам не собирал, а ядро Linux собирал. Но мы же об микроконтроллерах всё же говорим. Много раз вы GCC на микроконтроллере запускали? 
[uquote="arkhnchul",url="/forum/viewtopic.php?p=3706115#p3706115"]VladislavS, мы, кажца, про разные вещи спорим.[/uquote]Не знаю, я писал про один мегазаголовочный файл main.h в котором все остальные заголовочные файлы подключены. Зачем мне было приписывать беспорядочные половые межфайловые связи не понимаю.
Я про "сию метОду" (слияние исходников в один файл) слышал в одном из докладов на "C++ User Group". Там, правда, докладчик сознался, что прирост в производительности не стоит того геммора, который этот процесс на большом проекте порождает. И в конечном итоге они отказались от него.
[uquote="arkhnchul",url="/forum/viewtopic.php?p=3706115#p3706115"]VladislavS, мы, кажца, про разные вещи спорим.[/uquote]Не знаю, я писал про один мегазаголовочный файл main.h в котором все остальные заголовочные файлы подключены. Зачем мне было приписывать беспорядочные половые межфайловые связи не понимаю.
Я про "сию метОду" (слияние исходников в один файл) слышал в одном из докладов на "C++ User Group". Там, правда, докладчик сознался, что прирост в производительности не стоит того геммора, который этот процесс на большом проекте порождает. И в конечном итоге они отказались от него.
Re: Вопросы по С/С++ (СИ)
понеслось все вот с этого, если помните
[uquote="VladislavS",url="/forum/viewtopic.php?p=3705335#p3705335"][uquote="arkhnchul",url="/forum/viewtopic.php?p=3705321#p3705321"]а зачем?[/uquote]Удобно. Всё подключается в одном месте - легко контролировать. Всё доступно везде, мало ли где что я использовать буду.[/uquote]
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Вопросы по С/С++ (СИ)
Хорошо, привожу пример. Есть у меня библиотека GPIO для ногодрыга. Согласись, дернуть ногой может абсолютно любой класс где угодно и когда угодно. Считаю разумным, что мне эта библиотека доступна в любой части программы посредством подключения через main.h. А не надо дёргать, ну и пусть она себе за namespace лежит нетронутой, кому от этого хуже.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
я - непрограммист, я - самоучка. как умею, так и программирую. из вашей последней беседы, господа профессионалы, я понимаю только одно (что уже не раз повторял): вам важно меряться между собой письками, доказывая все равно что. а я скромно придерживаюсь того мнения, что если мне так нравится писать - то и правильно.NStorm писал(а):"Непрограммист" не будет знать в чем разница.
а вы никогда не думали, что главное назначение языка программирования - это не писать на нем, а читать с него? толку с того, что вы напишите правильно, если я не смогу прочесть? писать надо так, чтобы вас понимали. и, поскольку вы здесь не на профессиональном форуме (похоже, там вам сказать нечего), я не понимаю, чего вы распушили хвосты...NStorm писал(а):не стал разговорным, чтобы на нём интуитивно писать
вот-вот, о чем я и говорил. а вот я голой жопой ежей давлю.ПростоНуб писал(а):Я то его сборку наблюдал многократно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Вопросы по С/С++ (СИ)
Гы абревиатура, код пишется не для тебя а для железки.
Что толку от того можешь ты читать али нет? Это твои проблемы, писанина адресована камню...
А вот если писатель сам не может осознать свои труды , скажем через месяц. Дык учимся писать самодокументируемый код.
Кстати , чем дальше ты философствуешь тем меньше тебя понимают. Был такой Немо когда-то , писал письма...
Зы. И еще кстати , такие "экономисты" как ты умудряются даже в коде на буквах экономить, вот это я вам скажу да...
Что толку от того можешь ты читать али нет? Это твои проблемы, писанина адресована камню...
А вот если писатель сам не может осознать свои труды , скажем через месяц. Дык учимся писать самодокументируемый код.
Кстати , чем дальше ты философствуешь тем меньше тебя понимают. Был такой Немо когда-то , писал письма...
Зы. И еще кстати , такие "экономисты" как ты умудряются даже в коде на буквах экономить, вот это я вам скажу да...
Последний раз редактировалось dosikus Пн сен 23, 2019 20:25:52, всего редактировалось 1 раз.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
dosikus, иногда ты говоришь умные вещи, но не сейчас: камню абсолютно пофиг, в одном заголовке ты намешаешь все описания, или все переменные будут глобальными, или функции будут между собой через setjmp/longjmp перекрестно взаимодействовать... и, вероятно, даже тому, кто такую макаронную кашу написал тоже пофиг. а вот тому, кто все это начнет читать - будет больно.
понимаешь? не писатель плачет, не камень - читатель! и все языки только для того и придуманы, чтобы РАЗНЫЕ люди могли без слез обмениваться кодом...
Добавлено after 1 minute 38 seconds:
что я тебе и доказываю. а ты и сам все понимаешь.
понимаешь? не писатель плачет, не камень - читатель! и все языки только для того и придуманы, чтобы РАЗНЫЕ люди могли без слез обмениваться кодом...
Добавлено after 1 minute 38 seconds:
правильно, dosikus, обрати внимание: на этом этапе писатель превратился уже в ЧИТАТЕЛЯdosikus писал(а):сам не может осознать свои труды , скажем через месяц
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Вопросы по С/С++ (СИ)
ARV, что ты всё ноешь? Тема называется "Вопросы по С/С++ (СИ)". Её мы и обсуждаем. И не тебе решать буду я тут писать или нет. Не нравится - не читай.
Re: Вопросы по С/С++ (СИ)
А может все намного проще, коектонебудемпоказыватьпальцем просто не умеет читать. Ась?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
я ведь читаю тему и пытаюсь найти в ней смысл. а его нет. значит, вы обсуждаете что-то другое. собственное ЧСВ, например.VladislavS писал(а):Её мы и обсуждаем
а может и не умеет - это плохо? может быть, этот кое-кто очень хочет научиться читать, да только все писуны озабочены не тем, чтобы их писунину можно было прочесть, а тем, чтобы написать позагогулистей прочих писунов? потому кое-кто и ноет.dosikus писал(а):коектонебудемпоказыватьпальцем просто не умеет читать. Ась?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Вопросы по С/С++ (СИ)
[uquote="dosikus",url="/forum/viewtopic.php?p=3706173#p3706173"]Гы абревиатура, код пишется не для тебя а для железки.
Что толку от того можешь ты читать али нет? Это твои проблемы, писанина адресована камню...[/uquote]вообще говоря, даже ассемблер в свое время придумали для людей, а не машин. И код на любом из языков должен быть в первую очередь человекочитабелен и писабелен.
Что толку от того можешь ты читать али нет? Это твои проблемы, писанина адресована камню...[/uquote]вообще говоря, даже ассемблер в свое время придумали для людей, а не машин. И код на любом из языков должен быть в первую очередь человекочитабелен и писабелен.
Re: Вопросы по С/С++ (СИ)
Т. е. по вашему программисты только те кто имеют диплом? И не важно кто он купленный и в реальности человек if от for не отличит, а volatile посчитает ругательством...ARV писал(а):я - непрограммист, я - самоучка. как умею, так и программирую.
ИМХО если вы уверено пишите программы, то вы программист.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
не важно, кем я сам себя считаю. вы же не относитесь ко мне, как к равномуМурик писал(а):то вы программист
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Вопросы по С/С++ (СИ)
[uquote="ARV",url="/forum/viewtopic.php?p=3706204#p3706204"]
значит, я не программист.[/uquote]Неправда! Ты сам не относишься к себе как к равному, о чём на каждом шагу и трубишь.
не важно, кем я сам себя считаю. вы же не относитесь ко мне, как к равномуМурик писал(а):то вы программист
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
[uquote="VladislavS",url="/forum/viewtopic.php?p=3706138#p3706138"]Есть у меня библиотека GPIO для ногодрыга.[/uquote]
Под "библиотекой" имеются в виду четыре макроса: set_pin, reset_pin, get_pin и invert_pin? Дык, пишем их в каком-либо заголовочном файле и инклюдим. Проблем-то... Препроцессор gcc — очень классная вещь!
А насчет писателя и читателя, код должен быть таким, чтобы даже через 10 лет, когда ты внезапно полезешь в исходники, ты не ломал голову, какого черта там происходит! И не было желания прибить того, кто этот код писал. Поэтому-то всякие кодогенераторы — дикое зло. И жирные жуткие библиотеки вроде Qt или GTK — зло (из-за их засилья, кстати, я давно уже перестал пытаться что-нибудь GUI'шное написать; полностью вынес GUI в веб: и наглядно, и легко свои CLI'шные клиенты делать при необходимости).
Под "библиотекой" имеются в виду четыре макроса: set_pin, reset_pin, get_pin и invert_pin? Дык, пишем их в каком-либо заголовочном файле и инклюдим. Проблем-то... Препроцессор gcc — очень классная вещь!
Я, например, "программист" ругательством считаю. Потому что это — тяжелый подневольный труд: скажут под какую-нибудь дрянь вроде форточек писать, да еще и не на ЯП, а на пхытоне каком-либо (а то и вообще на си-диезе), и ему приходится это делать... Не, у меня сишечка — мегаЯП, который может абсолютно все: от модулей ядра и микроконтроллеров до всяких демонов, организующих сбор данных с обработкой, запихиванием в БД и выдачей веб-морде. Да и "скриптики" некоторые у меня — двухстраничные сишные...Мурик писал(а):если вы уверено пишите программы, то вы программист.
А насчет писателя и читателя, код должен быть таким, чтобы даже через 10 лет, когда ты внезапно полезешь в исходники, ты не ломал голову, какого черта там происходит! И не было желания прибить того, кто этот код писал. Поэтому-то всякие кодогенераторы — дикое зло. И жирные жуткие библиотеки вроде Qt или GTK — зло (из-за их засилья, кстати, я давно уже перестал пытаться что-нибудь GUI'шное написать; полностью вынес GUI в веб: и наглядно, и легко свои CLI'шные клиенты делать при необходимости).
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Вопросы по С/С++ (СИ)
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3706252#p3706252"]Под "библиотекой" имеются в виду четыре макроса: set_pin, reset_pin, get_pin и invert_pin?[/uquote]Ну почти. Список типов на вариативных шаблонах. 
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3706252#p3706252"]Дык, пишем их в каком-либо заголовочном файле и инклюдим. Проблем-то...[/uquote]Ну собственно так и делаем, один раз для всего проекта.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3706252#p3706252"]Препроцессор gcc — очень классная вещь![/uquote]Компилятор С++ у него вообще отпад
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3706252#p3706252"]Дык, пишем их в каком-либо заголовочном файле и инклюдим. Проблем-то...[/uquote]Ну собственно так и делаем, один раз для всего проекта.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3706252#p3706252"]Препроцессор gcc — очень классная вещь![/uquote]Компилятор С++ у него вообще отпад


