Существует ли определение препроцессора, которое определяется, если компилятором является MSVC?

#c #visual-c #c-preprocessor

#c #visual-c #c-препроцессор

Вопрос:

Итак, я могу сделать что-то вроде

 #ifdef MSVC
//do compiler specific code here
#endif
  

Ответ №1:

Это _MSC_VER. Больше информации в MSDN и в predef.

Но имейте в виду, что некоторые другие компиляторы также могут определять это, например, компилятор Intel C для Windows также определяет _MSC_VER . Если это вызывает беспокойство, используйте #if _MSC_VER amp;amp; !__INTEL_COMPILER .

Комментарии:

1. 1 для ссылки на предварительный проект. Это первое место, на которое следует обратить внимание, когда речь идет о кроссплатформенных определениях.

Ответ №2:

Посмотрите на список предопределенных макросов MSVC. Вы найдете то, что вам нужно.

_MSC_VER вероятно, является хорошим.

Ответ №3:

_MSC_VER должно соответствовать вашим потребностям

Ответ №4:

_MSC_VER является одним из таких предопределенных макросов.