トピック | |
| XXH32ファミリー | |
| XXH64ファミリー | |
| XXH3ファミリー | |
マクロ | |
| #define | XXH_STATIC_LINKING_ONLY |
| 静的な割り当てに必要な内部状態の宣言にアクセスできるようにします。 | |
| #define | XXH_IMPLEMENTATION |
| 内部定義にアクセスできるようにします。 | |
| #define | XXH_INLINE_ALL |
| 実装を公開し、すべての関数を inlineとして指定します。 | |
| #define | XXH_PRIVATE_API |
| 関数をinlineとして指定せずに、実装を公開します。 | |
| #define | XXH_NAMESPACE /* YOUR NAME HERE */ |
| すべてのシンボルに透過的に接頭辞を付け、名前空間を模倣します。 | |
| #define | XXH_CAT(A, B) |
| #define | XXH_NAME2(A, B) |
| #define | XXH_IPREF(Id) |
| #define | XXHASH_H_5627135585666179 1 |
| #define | XXH_PUBLIC_API /* do nothing */ |
| グローバルシンボルを指定します。 | |
| #define | XXH_PUBLIC_API /* do nothing */ |
| グローバルシンボルを指定します。 | |
| #define | XXH_CONSTF /* disable */ |
| #define | XXH_PUREF |
| #define | XXH_MALLOCF |
| #define | XXH_VERSION_MAJOR 0 |
| #define | XXH_VERSION_MINOR 8 |
| #define | XXH_VERSION_RELEASE 4 |
| #define | XXH_VERSION_NUMBER (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE) |
| 各要素を2桁で符号化したバージョン番号。 | |
型定義 | |
| typedef uint32_t | XXH32_hash_t |
| 符号なし32ビット整数。 | |
列挙型 | |
| enum | XXH_errorcode { XXH_OK = 0 , XXH_ERROR } |
| ストリーミングAPIの終了コード。 詳細… | |
関数 | |
| unsigned | XXH_versionNumber (void) |
| xxHashのバージョンを取得します。 | |
| typedef uint64_t | XXH64_hash_t |
| 符号なし64ビット整数。 | |
詳細説明
公開されているxxHash関数の詳細を示します。
マクロ定義の説明
◆ XXH_STATIC_LINKING_ONLY
| #define XXH_STATIC_LINKING_ONLY |
◆ XXH_IMPLEMENTATION
| #define XXH_IMPLEMENTATION |
内部定義にアクセスできるようにします。
使用例:
◆ XXH_INLINE_ALL
| #define XXH_INLINE_ALL |
実装を公開し、すべての関数を inlineとして指定します。
これらのビルド用マクロを使うと、対象の翻訳単位にxxhashをインライン化できます。インライン化は、小さな入力、特に長さがコンパイル時定数で表される入力で性能を改善します:
https://fastcompression.blogspot.com/2018/03/xxhash-for-small-keys-impressive-power.html
また、xxHashのシンボルをその翻訳単位内に限定し、外部へエクスポートしません。
使用例:
xxhash.oを別のオブジェクトとしてコンパイルしてリンクしても役に立たないため、そのようにしないでください。
◆ XXH_NAMESPACE
| #define XXH_NAMESPACE /* YOUR NAME HERE */ |
すべてのシンボルに透過的に接頭辞を付け、名前空間を模倣します。
自分のライブラリにxxHash関数を組み込み、 外部公開 したい一方で、xxHashを含む可能性のある他のライブラリとのシンボル衝突を避けたい場合は、 XXH_NAMESPACE を使用できます。xxhashライブラリのすべての公開シンボルに、 XXH_NAMESPACE の値を接頭辞として自動的に付けます(そのため、空の値や数値は避けてください)。
呼び出し側のプログラムが xxhash.hをインクルードしている限り、そのプログラムを変更する必要はありません。このヘッダーが通常のシンボル名を自動的に変換します。
◆ XXH_CAT
| #define XXH_CAT | ( | A, | |
| B ) |
◆ XXH_NAME2
| #define XXH_NAME2 | ( | A, | |
| B ) |
◆ XXH_IPREF
| #define XXH_IPREF | ( | Id | ) |
型定義の説明
◆ XXH32_hash_t
| typedef uint32_t XXH32_hash_t |
符号なし32ビット整数。
必ずしも uint32_t として定義されるとは限りませんが、機能的には同等です。
◆ XXH64_hash_t
| typedef uint64_t XXH64_hash_t |
符号なし64ビット整数。
必ずしも uint64_t として定義されるとは限りませんが、機能的には同等です。
列挙型の説明
◆ XXH_errorcode
| enum XXH_errorcode |
関数の説明
◆ XXH_versionNumber()
| unsigned XXH_versionNumber | ( | void | ) |
xxHashのバージョンを取得します。
戻り値はヘッダーファイルではなくライブラリに由来するため、主にxxHashを共有ライブラリとしてコンパイルした場合に役立ちます。
- 戻り値
- XXH_VERSION_NUMBER (呼び出したライブラリの値)。
翻訳補足:コード内の原文コメント/* YOUR NAME HERE */は「ここに自分の名前を指定」、/* do nothing */は「何もしない」、/* disable */は「無効化」を意味します。コードとマクロ値は原文を保持しています。