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.
AK> И правильно ли я понимаю, что надо при следующей встрече все это порождение AK> наркоманского разума выпилить из кода и заменить на одно слово inline без AK> всяких подчеркиваний?
Hе было "inline" в языке C до C99, в частности его нету в C90. Для gcc было "inline" в качестве нестандартного расширения, исчезающего при сборке с ключом -std=c89 (или, что то же самое, -ansi), чтобы код мог использовать, к примеру, формально допустимое имя переменной inline. И "__inline__" тут как заменитель.