Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengesan Sistem Pengendalian Semasa Penyusunan Prapemproses C?

Bagaimanakah Saya Boleh Mengesan Sistem Pengendalian Semasa Penyusunan Prapemproses C?

Mary-Kate Olsen
Lepaskan: 2024-12-15 07:10:14
asal
259 orang telah melayarinya

How Can I Reliably Detect the Operating System During C Preprocessor Compilation?

Pengesanan Prapemproses Sistem Pengendalian dalam C

Pengesanan sistem pengendalian semasa pemprosesan prapemproses adalah penting untuk menulis kod C/C merentas platform. Begini cara untuk mencapai ini dengan pasti untuk Mac OS X, iOS, Linux dan Windows:


Kebanyakan penyusun mentakrifkan makro yang mengenal pasti sistem pengendalian. Untuk pengesanan prapemproses, makro yang dipratentukan ini adalah penting. GCC, misalnya, mempunyai senarai komprehensif, yang termasuk:

jika ditakrifkan(WIN32) || ditakrifkan(_WIN32) || ditakrifkan(__WIN32__) || ditakrifkan(__NT__)

// Define something for Windows (32-bit and 64-bit)
#ifdef _WIN64
    // Define something unique for Windows (64-bit only)
#else
    // Define something specific for Windows (32-bit only)
#endif
Salin selepas log masuk

elif APPLE

#include <TargetConditionals.h>
#if TARGET_IPHONE_SIMULATOR
    // iOS, tvOS, or watchOS Simulator
#elif TARGET_OS_MACCATALYST
    // Mac's Catalyst (bridging iOS API into Mac)
#elif TARGET_OS_IPHONE
    // iOS, tvOS, or watchOS device
#elif TARGET_OS_MAC
    // Other Apple platforms
#else
    // Error: Unknown Apple platform
#endif
Salin selepas log masuk

elif ANDROID

// Handled elsewhere (Android typically conforms to __linux__)
Salin selepas log masuk

elif linux

// Linux
Salin selepas log masuk

elif unix

// Unix
Salin selepas log masuk

elif ditakrifkan(_POSIX_VERSION)

// POSIX
Salin selepas log masuk

lain

// Error: Unknown compiler
Salin selepas log masuk

endif

Dengan menggunakan makro ini, anda boleh mengesan dengan pasti sistem pengendalian semasa pemprosesan prapemproses dan menyesuaikan kod anda dengan sewajarnya, memastikan keserasian merentas pelbagai platform.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Sistem Pengendalian Semasa Penyusunan Prapemproses C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan