У меня есть функция, определенная в библиотеке только для заголовка, которая выглядит следующим образом:
inline bar **foo_ptr() {
static bar *value = NULL;
return &value;
}
Это мой хакерский способ инициализации глобальной переменной без определения ее в файле * .c.
Это прекрасно скомпилируется в VS2010 (после #define inline __inline), но умирает от ярости множественного определения при любой попытке скомпилировать его в MinGW. Это делает меня очень грустным.
AFAIK, я не могу просто использовать функцию static inline
, так как она создаст многократные значения, что для этой ситуации является очень плохой вещью.
Какое ключевое слово (а) я должен действительно использовать, чтобы сделать эту работу? Я иду на это совершенно неправильно? Есть ли альтернативный способ инициализации глобальной переменной только для заголовка в NULL?
Я бы предпочел держаться подальше от методов init.
Спасибо: D