うーん、、1からわからずに書いた動かないソースではどうしようも無いと思うので、
どのようなものを求めてるかをまとめます。
文字列(型は問いません)を受け取り、そのハッシュを作成し整数定数型で返す関数です。
"コンパイル時"に定数として埋め込まれる事を想定していることがポイントです。
できた関数は、enum { aaa = hash("aaa"), bbb = hash("bbb") } のような感じで使えることが理想なのですが…

ここまで書いたのですが、言いたい事は>>376さんのが全てです
無茶なのは承知の上ですが、ここまで来ると諦めが付かなくて。。