マクロはここにあります:
一般的なガイドラインはここにあります:
更新/修正は、GitHubでのPrecef ContributeまたはPullリクエストを介して送信してください。
CおよびC ++コンパイラは、コンパイラまたはオペレーティングシステムの機能をチェックするために使用できる特定のマクロを自動的に定義します。これは、ポータブルソフトウェアを作成するときに役立ちます。
これらのページには、コンパイル時に標準、コンパイラ、オペレーティングシステム、ハードウェアアーキテクチャ、さらには基本的なランタイムライブラリを特定するために使用できるさまざまな事前定義されたコンパイラマクロがリストされています。
たとえば、一般的なポインターまたは不透明なポインタータイプを使用する場合は、ボイドポインターを使用します。ただし、古代の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は、ファイルを1回だけ含めることでコンピレーション時間を短縮するためのプラグマを追加しました( _MSC_VERが定義されていない場合、0(ゼロ)に評価されますが、一部のコンパイラは未定義のマクロについて不平を言う場合があります)
#if defined( _MSC_VER ) && ( _MSC_VER >= 1020 )
#pragma once
#endifこれらのページに含まれるマクロは、ベンダーのドキュメント、定義のスクリプト、貢献者、およびサードパーティのソースコードを通じて取得されています。マクロの正確性についての保証はありません。
頻繁に使用される代替品はAutoconfです。これは、コンピレーションオプションを含むさまざまな種類の機能を調べるためのより強力なツールです。ただし、AutoconfはかなりUnix中心であり、他のプラットフォーム(WindowsのCygwinなど)にUnix層が必要です。その他の代替品は、ビルドツール、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 Sanghyeon、Chris Adami、Geoff Clare、Dan Fandrich、Mik Vadim 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、Lon Scheniderロドリゲス・ガルシア、ジェロエン・ル・リーグロク・ファン・デル・ウェルヴェン、ウッフェ・ヤコブセン、ブライアン・アシュビー、ブルーノ・ヘイブル、アルトゥル・バック、テリー・シュワルツ、レオ・デイビス、マルクス・デュフト、ウィリアム・ダン、ポール・グリーン、ルーベン・ヴァン・ボクサム、パウ・ガルシア・アイ・クライス、ミクラ・パトッカ、レオ・デイビス、マーク・ファリー、シモン・マッケン、 Hans-Christoph Steiner、Gerald Combs、Denys Bulant、Massimo Morara、Jeremy Bennett、Guillem Jover、Riku Voipio、Jacques Pelletier、Mark Jarvin、Georg Sauthoff、Scot Jenkins、Grzegorz Brzczyszczykiecicz、John Dallman、Guianmichz GroEnewoudt、Andreas Mohr、équentheofしかйきヨハンセン、Stefan Tauner、Daniel Garcia、Ozkan Sezer、Dean Saridakis、Frank Long、Kevin Adler。