Makro ditemukan di sini:
Pedoman umum ditemukan di sini:
Silakan kirim pembaruan/koreksi ke pra-kontribusinya atau melalui permintaan tarik di GitHub.
Kompiler C dan C ++ secara otomatis mendefinisikan makro tertentu yang dapat digunakan untuk memeriksa fitur kompiler atau sistem operasi. Ini berguna saat menulis perangkat lunak portabel.
Halaman-halaman ini mencantumkan berbagai makro kompiler yang telah ditentukan sebelumnya yang dapat digunakan untuk mengidentifikasi standar, kompiler, sistem operasi, arsitektur perangkat keras, dan bahkan pustaka run-time dasar pada waktu kompilasi.
Misalnya, jika kami ingin menggunakan tipe pointer generik atau buram, kami menggunakan void pointer. Namun, kompiler K&R kuno (dari waktu sebelum standar ANSI C pertama) tidak mendukung void pointer. Sebaliknya kita dapat mendefinisikan tipe kita sendiri:
#if defined( __STDC__ ) || defined( __cplusplus ) || defined( _MSC_EXTENSIONS )
typedef void * t_pointer ;
#else
typedef char * t_pointer ;
#endif Contoh lain, Microsoft Visual C ++ Versi 4.2 menambahkan pragma untuk mengurangi waktu kompilasi hanya dengan memasukkan file sekali (jika _MSC_VER tidak ditentukan maka akan mengevaluasi ke 0 (nol) - namun, beberapa kompiler dapat mengeluh tentang makro yang tidak terdefinisi)
#if defined( _MSC_VER ) && ( _MSC_VER >= 1020 )
#pragma once
#endifMakro yang terkandung dalam halaman-halaman ini telah diperoleh melalui dokumentasi vendor, skrip mendefinisikan, kontributor, dan kode sumber pihak ketiga. Tidak ada jaminan tentang kebenaran makro yang diberikan.
Alternatif yang sering digunakan adalah AutoConf, yang merupakan alat yang lebih kuat untuk memeriksa berbagai jenis fitur, termasuk opsi kompilasi. Namun, AutoConf cukup unix-sentris, dan membutuhkan lapisan UNIX pada platform lain (misalnya Cygwin di Windows). Alternatif lainnya adalah BuildTool, CMake, Scons, PMK, Jam, Ant, dan 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, Mike Gorchak, Yuri D'Elia, Gynvael Coldwind, Alain Tauch, 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 Baonviri, Ming Kin Lai, Kent Johnson, Helmovic, Helm Baonviri, Ming Kin Lai, Kent Johnson, Helmovic, Helm Baonviri, Ming Kin Lai, Kent Johnson, Helmovic, Helm Baonviri, Rodriguez Garcia, Jeroen Ruigrok van der Werven, Uffe Jakobsen, Bryan Ashby, Bruno Haible, Artur Bac, Terry Schwarz, Leo Davis, Markus Duft, William Dang, Paul Green, Ruben Van Boxem, Pau Garcia i Quiles, Mikulas Patocka, Leo Davis, Mark Ferry, Holger Machens, Simon Watts, Paul Hargrove, Hans-Christoph Steiner, Gerald Combs, Denys Bulant, Massimo Morara, Jeremy Bennett, Guillem Jover, Riku Voipio, Jacques Pelletier, Mark Jarvin, Georg Sauthoff, Scot Jenkins, Grzegorz Brzyczyszc Sauthoff, Scot, Grzegorz Brzyzyz ęczyzczczcyz, Grzegorz ęczyzczczczczczczczcyz, Grzegorz ęczyzczczczczcyz, Grzegorz, Groenewoudt, Andreas Mohr, аексей юрецкий, Sverre Hvammen Johansen, Stefan Tauner, Daniel Garcia, Ozkan Sezer, Dean Saridakis, Frank Long, Kevin Adler.