# include/platform.h

# 1 ファイル

## 1.1 include/platform.h

プラットフォームおよびアーキテクチャ検出マクロのヘッダーファイル。

ビルド対象の OS とプロセッサアーキテクチャを検出し、統一的なマクロを定義します。

#### 1.1.0.1 プラットフォーム検出マクロ

検出されたプラットフォームに応じて、以下のマクロを定義します。

プラットフォーム | 識別マクロ | PLATFORM_NAME
--- | --- | ---
Windows | PLATFORM_WINDOWS | “Windows”
Linux | PLATFORM_LINUX | “Linux”
macOS | PLATFORM_MACOS | “macOS”
Apple (非 macOS) | PLATFORM_APPLE_OTHER | “Apple (non-macOS)”
その他 | PLATFORM_UNKNOWN | “Unknown”

Apple プラットフォームでは TargetConditionals.h を使用して macOS と iOS 等を区別しています。

#### 1.1.0.2 アーキテクチャ検出マクロ

検出されたアーキテクチャに応じて、以下のマクロを定義します。

アーキテクチャ | 識別マクロ | ARCH_NAME
--- | --- | ---
x86_64 | ARCH_X64 | “x64”
x86 (32bit) | ARCH_X86 | “x86”
AArch64 | ARCH_ARM64 | “ARM64”
ARM (32bit) | ARCH_ARM | “ARM”
その他 | ARCH_UNKNOWN | “Unknown”

Copyright (C) CompanyName, Ltd. 2025. All rights reserved.

### 1.1.1 作者

c-modernization-kit sample team

### 1.1.2 日付

2025/11/22

# 2 定数、マクロ

## 2.1 PLATFORM_WINDOWS

    #define PLATFORM_WINDOWS

Windows の場合に定義されます。

## 2.2 PLATFORM_LINUX

    #define PLATFORM_LINUX

Linux の場合に定義されます。

## 2.3 PLATFORM_MACOS

    #define PLATFORM_MACOS

macOS の場合に定義されます。

## 2.4 PLATFORM_APPLE_OTHER

    #define PLATFORM_APPLE_OTHER

macOS 以外の Apple プラットフォームの場合に定義されます。

## 2.5 PLATFORM_UNKNOWN

    #define PLATFORM_UNKNOWN

未知のプラットフォームの場合に定義されます。

## 2.6 PLATFORM_NAME

    #define PLATFORM_NAME         "name"

プラットフォーム名の文字列 (“Windows”, “Linux”, “macOS”, “Apple (non-macOS)”, “Unknown”)。

## 2.7 ARCH_X64

    #define ARCH_X64

x86_64 アーキテクチャの場合に定義されます。

## 2.8 ARCH_X86

    #define ARCH_X86

x86 (32bit) アーキテクチャの場合に定義されます。

## 2.9 ARCH_ARM64

    #define ARCH_ARM64

AArch64 アーキテクチャの場合に定義されます。

## 2.10 ARCH_ARM

    #define ARCH_ARM

ARM (32bit) アーキテクチャの場合に定義されます。

## 2.11 ARCH_UNKNOWN

    #define ARCH_UNKNOWN

未知のアーキテクチャの場合に定義されます。

## 2.12 ARCH_NAME

    #define ARCH_NAME "name"

アーキテクチャ名の文字列 (“x64”, “x86”, “ARM64”, “ARM”, “Unknown”)。