AnswerBun.com

Есть ли стандартный макрос для вычисление компилятора программы на С?

Stack Overflow на русском Asked on December 14, 2020

Хочу исполнить раздельную компиляцию через использование условных директив.

Например, если используется компилятор Visual Studio (по-моему Intel), то выполняется следующий код, иначе, если компилятор gcc, то другой код.

Саму реализацию я знаю. Мне важно узнать какой макрос используется для определения компилятора Visual Studio. На просторах интернета я нашел макрос __ MINGW32 __, но он (компилятор) не используется в VS.

One Answer

Нет, у каждого компилятора есть свой макрос да ещё может меняться от версии к версии, можно конечно под каждый необходимый вручную их узнать, но есть более проверенный способ https://github.com/boostorg/predef/blob/develop/doc/predef.adoc

Пример

#include <boost/predef.h>
#include <iostream>

#if BOOST_COMP_GNUC
  #if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)
    const char * the_compiler = "GNU GCC, of at least version 4."
  #else
    const char * the_compiler = "GNU GCC, less than version 4."
  #endif
#else
  const char * the_compiler = "Not GNU GCC."
#endif

int main()
{
  std::cout << the_compiler << std::endl;
  return 0;
}

Answered by Arenoros on December 14, 2020

Add your own answers!

Related Questions

Не загружается parrot os

0  Asked on August 16, 2020 by darkhackergs

     

Классы. Калькулятор

3  Asked on August 13, 2020 by krumlyakov

   

скрыть/показать текст с помощью jquery

1  Asked on August 13, 2020 by andrey-sindeev

 

Не могу понять почему не работает echo

1  Asked on August 12, 2020 by java-js-html-css

 

Не работает Raycast

1  Asked on August 10, 2020 by yukio-ito

   

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP