Вы можете установить препроцессор в свойствах проекта: .
Однако в вашем случае я бы не стал использовать их, поскольку они не должны зависеть от проекта (поскольку они зависят от компилятора). Я действительно думаю, что вы ищете это. Я не уверен, что для llvm / clang (они есть, но я их сейчас не помню), но для GCC вы должны использовать макрос __GNUC__
, который будет определен самим компилятором, без необходимости беспокоиться об этом. Ведущие подчеркивания говорят вам, что они не являются частью стандарта и не обязательно определены при использовании другого компилятора (например, MSVC).
Для кроссплатформенного использования vsprintf_s
:
// this will be set on Visual Studio only, so this code is added for all other compilers
#ifndef _MSC_VER
#define vsprintf_s(b,l,f,v) vsprintf(b,f,v);
#endif
Но в целом попробуйте использовать функции, доступные на всех платформах (для этого примера вместо этого используйте vsnprintf()
).