Информация об изменениях

Сообщение Re[5]: Феерия с inline в C99 и GCC 5.1 от 03.07.2015 20:22

Изменено 03.07.2015 20:28 placement_new

Здравствуйте, watchmaker, Вы писали:


W>Ну и как обычно, в одном из .c файлов даётся определение
extern inline void foo();
Причём, как видно, тут просто сообщается о том, какой объектный файл будет предоставляют функцию, а её код автоматически берётся из .h файла.


Получается, определив inline функцию только в заголовочном файле, и не написать декларацию в .c файле — это, в принципе, не правильно?
На с++ такое распостраняется?
Всегда думал, что любое использование inline-функции (если компилятор решил ее не связывать) просто приводит к созданию слабых ссылок на них, из которых линкер выберет только одну.
Re[5]: Феерия с inline в C99 и GCC 5.1
Здравствуйте, watchmaker, Вы писали:


W>Ну и как обычно, в одном из .c файлов даётся определение
extern inline void foo();
Причём, как видно, тут просто сообщается о том, какой объектный файл будет предоставляют функцию, а её код автоматически берётся из .h файла.


Получается, определив inline функцию только в заголовочном файле, и не написать декларацию в .c файле — это, в принципе, не правильно?
На с++ такое распостраняется?
Всегда думал, что любое использование inline-функции (если компилятор решил ее не встраивать) просто приводит к созданию слабых ссылок на них, из которых линкер выберет только одну.