Вопрос
Я нашел rand_s
Функция, часть ЭЛТ, быть чрезвычайно полезной при разработке моего приложения. Тем не менее, я понимаю, что он не простопирован в последних файлах заголовков Mingw.
Поэтому я прошу всеобъемлющее средство либо предоставления или прототипирования такой функции. Я рассмотрел с помощью #ifdef MINGW
Крюк стиля, однако, это может потерпеть неудачу, если будущие изменения начнут прозоизировать функцию.
Поэтому, какой лучший способ сделать функцию доступной для моей программы такой, что она может быть скомпилирована с Mingw?
Решение
Один хакерский способ работать вокруг это:
#define rand_s silly_function_name
#include <mingw.h>
#undef rand_s
extern errno_t rand_s (unsigned int *randomValue);
Таким образом, если Mingw начинает предоставлять прототипу для него, он не будет вмешиваться (если они не предоставляют его как макрос, который вряд ли).