API 和 ABI 版本管理
*******************

CPython 透過以下巨集 (macro) 公開其版本號。請注意，對應到的是**建置
(built)** 所用到的版本，並不一定是**運行時期 (run time)** 所使用的版本
。

關於跨版本 API 和 ABI 穩定性的討論，請見 C API 的稳定性。

PY_MAJOR_VERSION

   在 "3.4.1a2" 中的 "3"。

PY_MINOR_VERSION

   在 "3.4.1a2" 中的 "4"。

PY_MICRO_VERSION

   在 "3.4.1a2" 中的 "1"。

PY_RELEASE_LEVEL

   在 "3.4.1a2" 中的 "a"。"0xA" 代表 alpha 版本、"0xB" 代表 beta 版本
   、"0xC" 為發布候選版本、"0xF" 則為最終版。

PY_RELEASE_SERIAL

   在 "3.4.1a2" 中的 "2"。零則為最終發布版本。

PY_VERSION_HEX

   被編碼為單一整數的 Python 版本號。

   所代表的版本資訊可以用以下規則將其看做是一個 32 位元數字來獲得：

   +---------+---------------------------+---------------------------+----------------------------+
   | 位元組  | 位元（大端位元組序 (big   | 意義                      | "3.4.1a2" 中的值           |
   | 串      | endian order)）           |                           |                            |
   |=========|===========================|===========================|============================|
   | 1       | 1-8                       | "PY_MAJOR_VERSION"        | "0x03"                     |
   +---------+---------------------------+---------------------------+----------------------------+
   | 2       | 9-16                      | "PY_MINOR_VERSION"        | "0x04"                     |
   +---------+---------------------------+---------------------------+----------------------------+
   | 3       | 17-24                     | "PY_MICRO_VERSION"        | "0x01"                     |
   +---------+---------------------------+---------------------------+----------------------------+
   | 4       | 25-28                     | "PY_RELEASE_LEVEL"        | "0xA"                      |
   |         +---------------------------+---------------------------+----------------------------+
   |         | 29-32                     | "PY_RELEASE_SERIAL"       | "0x2"                      |
   +---------+---------------------------+---------------------------+----------------------------+

   因此 "3.4.1a2" 代表 hexversion "0x030401a2"、"3.10.0" 代表
   hexversion "0x030a00f0"。

所有提到的巨集都定義在 Include/patchlevel.h。
