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

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

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

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

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

Сообщение NStorm »

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

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

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

Сообщение VladislavS »

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

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

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

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

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

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

Сообщение arkhnchul »

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

[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: Вопросы по С/С++ (СИ)

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

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

Сообщение arkhnchul »

понеслось все вот с этого, если помните :wink: [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: Вопросы по С/С++ (СИ)

Сообщение VladislavS »

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

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

Сообщение ARV »

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

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

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

Сообщение dosikus »

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

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

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

Сообщение ARV »

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

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

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

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

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

Сообщение VladislavS »

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

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

Сообщение dosikus »

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

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

Сообщение ARV »

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

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

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

Сообщение arkhnchul »

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

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

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

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

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

Сообщение ARV »

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

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

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

Сообщение VladislavS »

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

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

Сообщение 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. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

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

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

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