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

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

Сообщение arkhnchul »

[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]уходят от этапа компоновки на этапе сборки и, иногда, динамической компоновки в дальнейшем, получая монолитный объектник. Это на самом деле быстрее, чем компилять кучу мелких объектников и потом собирать их в кучу. Не обязательно пересобирать вообще абсолютно все на каждый чих - только тот набор исходников, из которого получается какой-нибудь из крупных объектников проекта.
Реклама
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Сообщение NStorm »

[uquote="ARV",url="/forum/viewtopic.php?p=3706067#p3706067"]видите ли в чем дело: мою терминологию поймет даже непрограммист, если он владеет русским языком, и при этом ему не потребуется рыться в гугле или вики. терминология же, требующая даже от специаста уточнений - плохая терминология.[/uquote]
"Непрограммист" не будет знать в чем разница. Язык C пока как бы не стал разговорным, чтобы на нём интуитивно писать. А программист не поймет, потому что знает другие определения. Я вот вас бы без вашего же описания не понял бы.

[uquote="ARV",url="/forum/viewtopic.php?p=3706067#p3706067"]вот именно об этом я и говорил - самого первого переводчика стандарта Си никто не поправил, а сам он не стал лишний раз перечитывать, и вот... имеем то, что имеем :)[/uquote]
На английском тоже очень знаете ли похоже и "мутно" звучит. И тоже многие путаются. Тем не менее в английском закреплены данные слова в стандарте. Вам их, равно как и уже устоявшийся перевод на русский, уже всё-равно не изменить на весь мир. Уж лучше смириться и использовать принятые стандартом термины. Иначе будете говорить на разных языках.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

arkhnchul, ну вот смотри. В классическом С подход "раздёляй и властвуй" был единственно возможным. Прячешь реализацию в единице компиляции, выставляя наружу только интерфейс через extern и прототипы функций. Ну тут никуда не денешься, сиди и руками все "клей". Потом появился С++ с ООП, первым постулатом которого была инкапсуляция. Мы уже могли в класс прятать данные и методы и даже делать их private, чтобы уж точно никто их случайно потрогать не мог. Но всё равно, этого оказалось мало, глобальная область осталась так же не защищена. И тогда появляется namespace, под которую мы можем прятать всё что не должно быть просто так доступно во избежании конфликтов. Но если такая необходимость появляется, то доступ возможен. И примеров когда это удобно и совершенно безопасно можно привести множество.
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

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

[uquote="Reflector",url="/forum/viewtopic.php?p=3706065#p3706065"]Один из примеров - это sqlite[/uquote]
Такое ощущение, что он и единственный. Кроме него только мелочевку какую-то нашел.
И совершенно не понятно, как это слияние может повлиять на скорость выполнения? Ну размер еще компилятор может уменьшить, найдя дуплицирующийся код, если таковой имеется. Но скорость то как?

VladislavS, Вы бы попробовали скомпилировать, например, тот же GCC сам собой. Тогда бы прочуствовали соотношение по времени между компиляцией и компоновкой. Я то его сборку наблюдал многократно.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

VladislavS, мы, кажца, про разные вещи спорим. Когда все делают доступным везде, то обычно этим таки пользуются - зачем иначе городить огороды? - и тут блин начинается. Драйвер вывода на индикатор пинает термометры, потому что почему бы и нет, "ну он же только их показания выводит"(с). Функции подсчета CRC сами молча дописывают результат в конец буфера, "так она ж исключительно здесь используется, чего париться". Методы класса игнорируют собственные поля, ненуачо, "конфигурация же глобальная, какой идиот передаст что-то другое в конструктор". Такое вот все. Хочется полюбоваться вблизи на авторов сих идей и пожать их крепкие мужественные шеи.

[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3706091#p3706091"]И совершенно не понятно, как это слияние может повлиять на скорость выполнения?[/uquote]компилятор обычно будет поумнее, чем программист линкер. Да навскидку даже тупо инлайнить мелкие функции, которые иначе были бы в другом объектнике и вызывались как положено, с толком и расстановкой - уже хлеб.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3706091#p3706091"]Вы бы попробовали скомпилировать, например, тот же GCC сам собой. Тогда бы прочуствовали соотношение по времени между компиляцией и компоновкой.[/uquote]сия метОда была придумана задолго до SSD и гигабайт оберативы под кэши) компоновка мелочни, равно как и запись временных файлов после препроцессора (не все умели обходиться без них) - интенсивные дисковые операции.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[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". Там, правда, докладчик сознался, что прирост в производительности не стоит того геммора, который этот процесс на большом проекте порождает. И в конечном итоге они отказались от него.
Реклама
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

понеслось все вот с этого, если помните :wink: [uquote="VladislavS",url="/forum/viewtopic.php?p=3705335#p3705335"][uquote="arkhnchul",url="/forum/viewtopic.php?p=3705321#p3705321"]а зачем?[/uquote]Удобно. Всё подключается в одном месте - легко контролировать. Всё доступно везде, мало ли где что я использовать буду.[/uquote]
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

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

Сообщение ARV »

NStorm писал(а):"Непрограммист" не будет знать в чем разница.
я - непрограммист, я - самоучка. как умею, так и программирую. из вашей последней беседы, господа профессионалы, я понимаю только одно (что уже не раз повторял): вам важно меряться между собой письками, доказывая все равно что. а я скромно придерживаюсь того мнения, что если мне так нравится писать - то и правильно.
NStorm писал(а):не стал разговорным, чтобы на нём интуитивно писать
а вы никогда не думали, что главное назначение языка программирования - это не писать на нем, а читать с него? толку с того, что вы напишите правильно, если я не смогу прочесть? писать надо так, чтобы вас понимали. и, поскольку вы здесь не на профессиональном форуме (похоже, там вам сказать нечего), я не понимаю, чего вы распушили хвосты...
ПростоНуб писал(а):Я то его сборку наблюдал многократно.
вот-вот, о чем я и говорил. а вот я голой жопой ежей давлю.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

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

Сообщение dosikus »

Гы абревиатура, код пишется не для тебя а для железки.
Что толку от того можешь ты читать али нет? Это твои проблемы, писанина адресована камню...
А вот если писатель сам не может осознать свои труды , скажем через месяц. Дык учимся писать самодокументируемый код.
Кстати , чем дальше ты философствуешь тем меньше тебя понимают. Был такой Немо когда-то , писал письма...

Зы. И еще кстати , такие "экономисты" как ты умудряются даже в коде на буквах экономить, вот это я вам скажу да...
Последний раз редактировалось dosikus Пн сен 23, 2019 20:25:52, всего редактировалось 1 раз.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

dosikus, иногда ты говоришь умные вещи, но не сейчас: камню абсолютно пофиг, в одном заголовке ты намешаешь все описания, или все переменные будут глобальными, или функции будут между собой через setjmp/longjmp перекрестно взаимодействовать... и, вероятно, даже тому, кто такую макаронную кашу написал тоже пофиг. а вот тому, кто все это начнет читать - будет больно.

понимаешь? не писатель плачет, не камень - читатель! и все языки только для того и придуманы, чтобы РАЗНЫЕ люди могли без слез обмениваться кодом...

Добавлено after 1 minute 38 seconds:
dosikus писал(а):сам не может осознать свои труды , скажем через месяц
правильно, dosikus, обрати внимание: на этом этапе писатель превратился уже в ЧИТАТЕЛЯ :) что я тебе и доказываю. а ты и сам все понимаешь.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

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

Сообщение VladislavS »

ARV, что ты всё ноешь? Тема называется "Вопросы по С/С++ (СИ)". Её мы и обсуждаем. И не тебе решать буду я тут писать или нет. Не нравится - не читай.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

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

Сообщение ARV »

VladislavS писал(а):Её мы и обсуждаем
я ведь читаю тему и пытаюсь найти в ней смысл. а его нет. значит, вы обсуждаете что-то другое. собственное ЧСВ, например.
dosikus писал(а):коектонебудемпоказыватьпальцем просто не умеет читать. Ась?
а может и не умеет - это плохо? может быть, этот кое-кто очень хочет научиться читать, да только все писуны озабочены не тем, чтобы их писунину можно было прочесть, а тем, чтобы написать позагогулистей прочих писунов? потому кое-кто и ноет.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

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

Сообщение arkhnchul »

[uquote="dosikus",url="/forum/viewtopic.php?p=3706173#p3706173"]Гы абревиатура, код пишется не для тебя а для железки.
Что толку от того можешь ты читать али нет? Это твои проблемы, писанина адресована камню...[/uquote]вообще говоря, даже ассемблер в свое время придумали для людей, а не машин. И код на любом из языков должен быть в первую очередь человекочитабелен и писабелен.
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

ARV писал(а):я - непрограммист, я - самоучка. как умею, так и программирую.
Т. е. по вашему программисты только те кто имеют диплом? И не важно кто он купленный и в реальности человек if от for не отличит, а volatile посчитает ругательством... :dont_know:
ИМХО если вы уверено пишите программы, то вы программист. :)
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Мурик писал(а):то вы программист
не важно, кем я сам себя считаю. вы же не относитесь ко мне, как к равному :) значит, я не программист.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

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

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=3706204#p3706204"]
Мурик писал(а):то вы программист
не важно, кем я сам себя считаю. вы же не относитесь ко мне, как к равному :) значит, я не программист.[/uquote]Неправда! Ты сам не относишься к себе как к равному, о чём на каждом шагу и трубишь.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[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'шные клиенты делать при необходимости).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[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]Компилятор С++ у него вообще отпад :)
Ответить

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