매크로는 여기에 있습니다.
일반 지침은 다음과 같습니다.
Predef-Contribute 또는 Github의 풀 요청을 통해 업데이트/수정 사항을 보내십시오.
C 및 C ++ 컴파일러는 컴파일러 또는 운영 체제 기능을 확인하는 데 사용할 수있는 특정 매크로를 자동으로 정의합니다. 휴대용 소프트웨어를 작성할 때 유용합니다.
이 페이지에는 표준, 컴파일러, 운영 체제, 하드웨어 아키텍처 및 컴파일 타임에서 기본 런타임 라이브러리를 식별하는 데 사용할 수있는 다양한 사전 정의 된 컴파일러 매크로가 나와 있습니다.
예를 들어, 일반 또는 불투명 포인터 유형을 사용하려면 void 포인터를 사용합니다. 그러나 고대 K & R 컴파일러 (첫 번째 ANSI C 표준 이전의 시간부터)는 무효 포인터를 지원하지 않습니다. 대신 우리는 우리 자신의 유형을 정의 할 수 있습니다.
#if defined( __STDC__ ) || defined( __cplusplus ) || defined( _MSC_EXTENSIONS )
typedef void * t_pointer ;
#else
typedef char * t_pointer ;
#endif 또 다른 예, Microsoft Visual C ++ 버전 4.2는 파일을 한 번만 포함하여 컴파일 시간을 줄이기 위해 Pragma를 추가했습니다 ( _MSC_VER 정의되지 않은 경우 0 (0)으로 평가됩니다. 그러나 일부 컴파일러는 정의되지 않은 매크로에 대해 불평 할 수 있습니다).
#if defined( _MSC_VER ) && ( _MSC_VER >= 1020 )
#pragma once
#endif이 페이지에 포함 된 매크로는 공급 업체 문서, 정의 스크립트, 기고자 및 타사 소스 코드를 통해 얻었습니다. 매크로의 정확성에 대한 보장은 없습니다.
종종 사용되는 대안은 AutoConf입니다. 이는 컴파일 옵션을 포함하여 다양한 유형의 기능을 검사하는보다 강력한 도구입니다. 그러나 AutoConf는 상당히 유닉스 중심이며 다른 플랫폼 (예 : Windows의 Cygwin)에 유닉스 레이어가 필요합니다. 다른 대안으로는 BuildTool, Cmake, Scons, PMK, Jam, Ant 및 Bakefile이 있습니다.
Bjorn Reese, Daniel Stenberg, Greg Roelofs, Steven G. Johnson, Wlodzimierz ABX Skiba, Marc Finet, Philip Newton, Mitchell Charity, Christian Klutz, Seo Sanghyon, Chris Adami, Geoff Clare, Dan Fandrich, Mike Gorchak, Yuri D' Elia Zeitlin, Steve White, Thomas David Rivers, Tom Honermann, Martin Mitas, Dinesh Chhadwa, Erik Faye-Lund, Leo Davis, Paul Hsieh, Roland Schwarz, Darko Kolakovic, Andy Buonviri, Ming Kin Lai, Kent Johnson, Helmut Bauer, Ron Pimblett, Ron Pimblet, Ron Pimblet. Rodriguez Garcia, Jeroen Ruigrok van der Werven, Uffe Jakobsen, Bryan Ashby, Bruno Haible, Artur Bac, Terry Schwarz, Leo Davis, Markus Duft, William Dang, Ruben van Boxem, Pau Garcia I Quiles, Mikulas Patocka, Leo Davis, Mark Fery, Holger Machens, Machens. Hans-Christoph Steiner, Gerald Combs, Denys Bulant, Massimo Morara, Jeremy Bennett, Guillem Jover, Riku Voipio, Jacques Pelletier, Mark Jarvin, Georg Sauthoff, Scot Jenkins, Grzegorz Brzęczyszcviewicz, John Dallman, Ganichele Toglia, Roblia, Ganichele Andreas Mohr, алексей пюрецкий, Sverre Hvammen Johansen, Stefan Tauner, Daniel Garcia, Ozkan Sezer, Dean Saridakis, Frank Long, Kevin Adler.