Easyelectronics.ru

Электроника для всех
Текущее время: 07 июл 2020, 21:42

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 05:53 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3378
Откуда: Китай, Пекин
когда это атрибуты перекочевали в С стандарт? это ж не Rust, где такие атрибуты являются стандартом с самого рождения

Изображение

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 08:54 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Ну здрастьте! :)))) Эти атрибуты были приняты много-много-много десятилетий назад. Ты загугли, сколько лет языку Си. А хРусту - всего то ничего год-два отсилы. Видимо, Чоблину надоел он, что на чистый Си решил пересесть.
"Орленок учится летать"? :)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 09:05 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3378
Откуда: Китай, Пекин
дальтоник пока только пролетать научился?
ты стандарт языка от фич компилятора различаешь?

в MSVC это __forceinline

Цитата:
сколько лет языку Си

хочешь сказать, что он родился - и прям сразу с бородой?
и как так получилось так, что в годовалом Rust больше мозгов, чем в этом немощном пенсионере.

_________________
unirail.org


Последний раз редактировалось cheblin 06 мар 2019, 09:17, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 09:15 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2570
Да ради Бога - не пишите на "богомерзком" Си, сделайте одолжение.
Человечество это переживет.
хРУСТите дальше...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 09:25 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3378
Откуда: Китай, Пекин
Цитата:
не пишите на

я пишу на очень многих языках и могу сравнивать. в отличии от...
кстати через месяц - два выйдет версия BlackBox на Rust

базовый код которой будет всё тот же .... С , а поверх, сгенерёный пользовательский код на Rust

почему так?
да переписывать лениво + сопровождать проще, да и работает это всё бесшовно, ага.

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 09:29 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2570
Хаять язык и пользоваться им?
Тут есть что то нездоровое....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 09:34 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3378
Откуда: Китай, Пекин
Pingvin писал(а):
Хаять

??
это всё от того, что ничего слаще морковки не пробовали...

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 10:03 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2570
cheblin писал(а):
Pingvin писал(а):
Хаять

??
это всё от того, что ничего слаще морковки не пробовали...

Мне сладкое вредно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 10:37 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4679
Откуда: КЧР, поселок Нижний Архыз
Странное какое-то поведение gcc...
Интересно, а в старых так же? У меня активный 8.2.0, а самый старый, что еще в репах сохранился - 6.4.0, более старые уже замаскировали давно...

Но по логике вещей, не должен он ругаться на такое! Хотя, много воды утекло: теперь inline вообще ничего не значит! С другой стороны, если убрать здесь inline, то все скомпиляется без вопросов... Явно недоработка разработчиков gcc.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 11:13 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3378
Откуда: Китай, Пекин
Eddy_Em писал(а):
Странное какое-то поведение gcc...
Интересно, а в старых так же? У меня активный 8.2.0, а самый старый, что еще в репах сохранился - 6.4.0, более старые уже замаскировали давно...

Но по логике вещей, не должен он ругаться на такое! Хотя, много воды утекло: теперь inline вообще ничего не значит! С другой стороны, если убрать здесь inline, то все скомпиляется без вопросов... Явно недоработка разработчиков gcc.


поосторожнее в удивлении ...если не хочешь (от местного графомана) узнать про себя много интересного , "орлёнок"

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 11:41 
Старожил
Аватара пользователя

Зарегистрирован: 06 ноя 2013, 16:07
Сообщения: 681
Откуда: Германия
gcc все делает строго по стандарту - п. 6.7.4.8 выше уже цитировали. Причем все эти выверты весьма логичны, если копнуть по-глубже. Тезисно:

* "inline" является просто подсказкой, а не командой. Зачем? - дать возможность компилятору пространство для маневра.
* Т.е. если встретился вызов inline-функции, то ее можно подставить целиком, а можно просто вызов. "gcc -O0" выберет второй вариант, имеет право.
* Соответственно, линковщик будет ожидать эту функцию в одном из объектных файлов.
* "inline"-определение может присутствовать много раз - после каждого инклуда.
* Компилятор не может генерировать эту функцию каждый раз, когда она встретится; иначе она может оказаться в нескольких экземплярах, и линковщик запротестует.
* Поэтому в одном из c-файлов надо добавить "extern int set_bits();", тогда компилятор в этом месте ее и сгенерирует.

Итого, ноги растут из необязательности inline и раздельной компиляции. Короче, так исторически сложилось.

С глобальными переменными та же фигня, но "extern" применяется строго наоборот.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 12:04 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2732
Откуда: Санкт-Петербург
Pingvin писал(а):
Хаять язык и пользоваться им?
Тут есть что то нездоровое....

Ну, для программистов на C++ хаять свой язык - естественно.

dev писал(а):
* Компилятор не может генерировать эту функцию каждый раз, когда она встретится; иначе она может оказаться в нескольких экземплярах, и линковщик запротестует.

Насколько я помню, компилятор C++ может и генерит, а линкер проверяет, что они одинаковые. Но это не точно.

UPD: "1) There may be more than one definition of an inline function or variable (since C++17) in the program as long as each definition appears in a different translation unit and (for non-static inline functions and variables (since C++17)) all definitions are identical. For example, an inline function or an inline variable (since C++17) may be defined in a header file that is #include'd in multiple source files." https://en.cppreference.com/w/cpp/language/inline - т.е. да, правильно помню.
А вот в C всё не совсем так: "In C, inline functions do not have to be declared inline in every translation unit (at most one may be non-inline or extern inline), the function definitions do not have to be identical (but the behavior of the program must not depend on which one is called), and the function-local statics are distinct between different definitions of the same function."
Вообще забавно так натыкаться на различия между це и крестиками.


Последний раз редактировалось aamonster 06 мар 2019, 12:35, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 12:07 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2570
Описывать функцию (а не просто декларировать) в хедере - это не правильно.
Вы потом этот хедер в несколько файлов проинклюдите и получите несколько экземпляров функции.
Элементарное непонимание как происходит компиляция и сборка.
А претензий и гонору то сколько!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 12:17 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3378
Откуда: Китай, Пекин
Цитата:
Элементарное непонимание как происходит компиляция и сборка.

именно! спасибо за демонстрацию. причём выше вам уже разжевали extern inline.
Цитата:
получите несколько экземпляров функции.

спасибо кэп, inline именно для того и пишут когда хотят чтобы тело функции было вставлено повсюду
Цитата:
А претензий и гонору то сколько!

_________________
unirail.org


Последний раз редактировалось cheblin 06 мар 2019, 13:25, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 12:39 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2732
Откуда: Санкт-Петербург
Pingvin писал(а):
Описывать функцию (а не просто декларировать) в хедере - это не правильно.
Вы потом этот хедер в несколько файлов проинклюдите и получите несколько экземпляров функции.
Элементарное непонимание как происходит компиляция и сборка.
А претензий и гонору то сколько!

От языка зависит. В крестиках (казалось бы, очень близки к C) это очень частый приём, есть даже библиотеки целиком на хедерах. Более того: если используете шаблонные (template) функции/классы - то реализация её не в хедере, а в *.cpp создаёт проблемы (решаемые только для случая, когда вы хотите жёстко зафиксировать список возможных параметров шаблона)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: знатокам и любителям с-ей
СообщениеДобавлено: 06 мар 2019, 14:16 
Старожил
Аватара пользователя

Зарегистрирован: 19 фев 2015, 17:37
Сообщения: 1604
Откуда: void
Pingvin писал(а):
Элементарное непонимание как происходит компиляция и сборка.
А претензий и гонору то сколько!

Зашёл, чтобы написать эти же строки.
А они уже тут. Кек...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB