Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 27 May 24 11:30:58, всего сообщений: 10756
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 6268 из 10756 ===================================== RU.UNIX.BSD =
От   : Eugene Grosbein                  2:5006/1           25 Dec 17 14:39:30
Кому : Alex Korchmar                                       25 Dec 17 14:39:30
Тема : Re: кстати, об истории с inline
FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+3b1449fa
На   : area://RU.UNIX.BSD?msgid=ddt.demos.su+46c7f186
= Кодировка сообщения определена как: IBM866 =================================
Ответ: area://RU.UNIX.BSD?msgid=<1187508631@ddt.demos.su>+3e2f023e
==============================================================================
23 дек. 2017, суббота, в 19:06 NOVT, Alex Korchmar написал(а):

AK> народ, а никто не может мне объяснить семантический смысл конструкции
AK> extern __inline__ int fn() { some shit } ?

Для каждой обозванной __inline__ функции компилятор может делать
до *двух* экземпляров кода функции, один обычный и один __inline__
Обычный для взятия адреса функции, например.

AK> С точки зрения gcc 2.7.2 или просто здравого смысла - какой, в жопу, может быть
AK> extern -- inline и как это должно было работать по задумке этих censored?

If you specify both inline and extern in the function definition,
then the definition is used only for inlining. In no case is the function
compiled on its own, not even if you refer to its address explicitly.
Such an address becomes an external reference, as if you had only declared
the function, and had not defined it.

https://gcc.gnu.org/onlinedocs/gcc/Inline.html

AK> И правильно ли я понимаю, что надо при следующей встрече все это порождение
AK> наркоманского разума выпилить из кода и заменить на одно слово inline без
AK> всяких подчеркиваний?

Hе было "inline" в языке C до C99, в частности его нету в C90.
Для gcc было "inline" в качестве нестандартного расширения,
исчезающего при сборке с ключом -std=c89 (или, что то же самое, -ansi),
чтобы код мог использовать, к примеру, формально допустимое
имя переменной inline. И ";__inline__" тут как заменитель.

https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html#Alternate-Keywords

Eugene
--- slrn/1.0.2 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.091591 секунды