Нет, это не так. Атрибуты не добавляются подписи функции, так что вы будете получать error: redefinition of 'GetCurrentIp'
Основная причина заключается в том, что функция подписи характеристика языка (C
в данном случае), а не от реализации (в данном случае gcc
), что поможет вам сопоставить их в выражениях, поэтому там не должно быть никакой зависимости от реализации. И атрибуты (как тот, который вы упоминаете, подсказка для компилятора, чтобы никогда не расширять эту встроенную функцию) являются директивами для компилятора для генерации кода по вашему желанию. Действительно, атрибуты, определенные в gcc
, не являются характеристикой языка, и как таковое значение программы не должно изменяться путем включения или исключения этих.
Вы также можете использовать параметр командной строки 'gcc'' -fno-inline', чтобы получить эффект 'noinline' для всех функций в заданном файле –