如何在 C++Builder 中有条件地编译不同平台的代码?
How to conditionally compile code for different platforms in C++Builder?
C++Builder中Android、iOS、Win32、Win64的平台条件定义是什么?我只找到了 Delphi.
的例子
在此 help page
上记录了所谓的清单常量。我在这里列出的平台:
┌─────────────┬───────┬──────────────────────────────┐
│ Macro │ Value │ Description │
├─────────────┼───────┼──────────────────────────────┤
│ _Windows │ 1 │ Windows platform │
├─────────────┼───────┼──────────────────────────────┤
│ __WIN32__ │ 1 │ 32-bit Windows platform │
├─────────────┼───────┼──────────────────────────────┤
│ _WIN64 │ 1 │ 64-bit Windows platform │
├─────────────┼───────┼──────────────────────────────┤
│ __arm__ │ │ 32-bit ARM compiler │
├─────────────┼───────┼──────────────────────────────┤
│ __arm64__ │ │ 64-bit ARM64 compiler │
├─────────────┼───────┼──────────────────────────────┤
│ __APPLE__ │ │ Apple platform │
├─────────────┼───────┼──────────────────────────────┤
│ __MACH__ │ │ MAC OSX platform │
├─────────────┼───────┼──────────────────────────────┤
│ __ANDROID__ │ │ Android platform │
└─────────────┴───────┴──────────────────────────────┘
这些宏是编译器固有的,因此它们没有要包含的头文件。一个例子:
#if _Windows
// Windows platform
#elif __APPLE__
// Apple platform
#elif __ANDROID__
// Android platform
#else
#error Not a supported platform
#endif
C++Builder中Android、iOS、Win32、Win64的平台条件定义是什么?我只找到了 Delphi.
的例子在此 help page
上记录了所谓的清单常量。我在这里列出的平台:
┌─────────────┬───────┬──────────────────────────────┐
│ Macro │ Value │ Description │
├─────────────┼───────┼──────────────────────────────┤
│ _Windows │ 1 │ Windows platform │
├─────────────┼───────┼──────────────────────────────┤
│ __WIN32__ │ 1 │ 32-bit Windows platform │
├─────────────┼───────┼──────────────────────────────┤
│ _WIN64 │ 1 │ 64-bit Windows platform │
├─────────────┼───────┼──────────────────────────────┤
│ __arm__ │ │ 32-bit ARM compiler │
├─────────────┼───────┼──────────────────────────────┤
│ __arm64__ │ │ 64-bit ARM64 compiler │
├─────────────┼───────┼──────────────────────────────┤
│ __APPLE__ │ │ Apple platform │
├─────────────┼───────┼──────────────────────────────┤
│ __MACH__ │ │ MAC OSX platform │
├─────────────┼───────┼──────────────────────────────┤
│ __ANDROID__ │ │ Android platform │
└─────────────┴───────┴──────────────────────────────┘
这些宏是编译器固有的,因此它们没有要包含的头文件。一个例子:
#if _Windows
// Windows platform
#elif __APPLE__
// Apple platform
#elif __ANDROID__
// Android platform
#else
#error Not a supported platform
#endif