В чем разница между static inline void и void?

Я работаю на языке C и модифицирую код, ранее написанный кем-то другим. Я борюсь с несколькими вещами, и я пытаюсь понять как можно больше о том, что происходит. Итак, как было сказано в моем вопросе, в чем разница между static inline voidи voidпри создании функции? Заранее извиняюсь за длинный пост, но я хотел, чтобы вы знали, что я провел некоторое исследование, но не понимаю, что я нашел.

Я нашел объяснение static , которое меня смущает:

Спецификатор static означает, что на функцию нельзя ссылаться из других файлов; то есть имя не экспортируется компоновщиком.

Читая это, я предполагаю, что ссылка на функцию отличается от вызова функции? Я предполагаю, что это потому, что эта функция вызывается из другого файла .c. Если это так, то что ссылается на функцию?

На том же веб-сайте они объясняют встроенные функции, и я не понимаю, что это значит.

Ключевое слово __inline указывает компилятору заменить код внутри определение функции для каждого экземпляра вызова функции. Однако подстановка происходит только по усмотрению компилятора. Для Например, компилятор не встраивает функцию, если ее адрес занято или если оно слишком велико для встраивания.

А???

Любая помощь приветствуется, и я еще раз прошу прощения за ужасно длинный пост.

Следующее находится в файле file1.c (используя общие имена, поскольку я не думаю, что это имеет значение)

COMPLEX cNoiseSample;
CGauss( &cNoiseSample, loopbackRadio->pState );

Следующее находится в файле file2.c

static inline void CGauss( COMPLEX * pcGauss, P_OS_UNIFORM_RAND_STATE pState )
{
    //code
}

16
задан Graham Borland 12 June 2012 в 15:13
поделиться