# calc/include/libcalc.h

# 1 ファイル

## 1.1 calc/include/libcalc.h

計算ライブラリ (動的リンク用) のヘッダーファイル。

このライブラリは基本的な整数演算を提供します。
動的リンクによる機能外提供用の API を模しています。

### 1.1.1 作者

c-modenization-kit sample team

### 1.1.2 バージョン

1.0.0

### 1.1.3 日付

2025/11/22

### 1.1.4 著作権

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

# 2 関数

## 2.1 calcHandler

    CALC_EXPORT int CALC_API calcHandler ( const int kind, const int a, const int b, int *result )

指定された演算種別に基づいて計算を実行します。

この関数は演算種別を受け取り、対応する計算関数を呼び出します。 現在サポートされている演算種別は以下の通りです。

演算種別 | 説明
--- | ---
CALC_KIND_ADD | 加算を実行
CALC_KIND_SUBTRACT | 減算を実行
CALC_KIND_MULTIPLY | 乗算を実行
CALC_KIND_DIVIDE | 除算を実行

### 2.1.1 引数

- kind [in] 演算の種別 (CALC_KIND_ADD など)。
- a [in] 第一オペランド。
- b [in] 第二オペランド。
- result [out] 計算結果を格納するポインタ。

### 2.1.2 戻り値

成功時は CALC_SUCCESS、失敗時は CALC_SUCCESS 以外の値を返します。

### 2.1.3 警告

無効な kind を指定した場合、ゼロ除算の場合、 または result が NULL の場合は失敗を返します。 呼び出し側で戻り値のチェックを行ってください。

### 2.1.4 使用例

    int result;
    if (calcHandler(CALC_KIND_ADD, 10, 20, &result) == CALC_SUCCESS) {
        printf("Result: %d\n", result);  // 出力: Result: 30
    }

# 3 定数、マクロ

## 3.1 CALC_EXPORT

    #define CALC_EXPORT

DLL エクスポート/インポート制御マクロ。

ビルド条件に応じて以下の値を取ります。

条件 | 値
--- | ---
Linux (非 Windows) | (空)
Windows / `__INTELLISENSE__` 定義時 | (空)
Windows / `CALC_STATIC` 定義時 (静的リンク) | (空)
Windows / `CALC_EXPORTS` 定義時 (DLL ビルド) | `__declspec(dllexport)`
Windows / `CALC_EXPORTS` 未定義時 (DLL 利用側) | `__declspec(dllimport)`

## 3.2 CALC_API

    #define CALC_API

呼び出し規約マクロ。

Windows 環境では `__stdcall` 呼び出し規約を指定します。
Linux (非 Windows) 環境では空に展開されます。
既に定義済みの場合は再定義されません。