gperfの生成コードで定義する関数、テーブル、定数の識別子は、gperfの宣言、または対応するコマンドラインオプションで制御できます。これは次の3つの目的に役立ちます。
gperfの生成コードをライブラリに含め、ほかのライブラリとの衝突を避けるため、そのライブラリが外部に公開するすべての識別子を特定の接頭辞で始めたいとします。デフォルトで外部に公開される識別子は検索関数だけです。そのため、‘-N’オプション、または同じ働きをする‘%define lookup-function-name’宣言を使えます。‘-L C++’オプション、または同じ働きをする‘%language=C++’宣言を使う場合、外部に公開される要素はクラスだけです。その名前は、‘-Z’オプション、または同じ働きをする‘%define class-name’宣言で制御します。
gperf生成コードを含めること。異なる入力ファイルを使ってgperfを複数回実行し、生成コードを同じソースファイルから取り込みたいとします。この場合、外部に公開する識別子だけでなく、‘static’スコープを持つ関数の名前、型、定数も変更する必要があります。デフォルトでは、検索関数、ハッシュ関数、定数を考慮する必要があります。そのため、‘-N’オプション(同じ働きをする‘%define lookup-function-name’宣言)、‘-H’オプション(同じ働きをする‘%define hash-function-name’宣言)、‘--constants-prefix’オプション(同じ働きをする‘%define constants-prefix’宣言)を使うとよいでしょう。‘-G’オプション、または同じ働きをする‘%global-table’宣言を使う場合は、キーワード配列と、存在する場合は長さのテーブルと文字列プールも考慮する必要があります。つまり、‘-W’オプション、または同じ働きをする‘%define word-array-name’宣言を使うとよいでしょう。‘-l’オプション、または同じ働きをする‘%compare-lengths’宣言を使う場合は、‘--length-table-name’オプション、または同じ働きをする‘%define length-table-name’宣言を使うとよいでしょう。‘-P’オプション、または同じ働きをする‘%pic’宣言を使う場合は、‘-Q’オプション、または同じ働きをする‘%define string-pool-name’宣言を使うとよいでしょう。