2017-06-06 17 views
0

閲覧源が、私は、次の作品につまずいてきた中括弧とシャープ記号:Haskellのプリプロセッサ - HaskellのSDLのバインディングの

#include "SDL/SDl.h" 

fromAudioFormat AudioS8 = #{const AUDIO_S8} 

#{const AUDIO_S8}一部が実際に何をしますか?一見すると、SDL.hからシンボルを抽出しますが、それが何をしているのか、同様のものを構築する方法を正確に知りたいと思います。私は特にconst修飾子について興味があります。

答えて

2

これはhsc2hsという構文です。 constディレクティブは、 "このC式のリテラル数値を生成された.hsファイルに出力します"と指示します。 #はプリプロセッサを呼び出すだけです。中括弧はオプションです - あなたは中括弧を省略した場合hsc2hsはちょうどラインの最後に読み込むので、あなたは同じように簡単に特定のプリプロセッサディレクティブの詳細については

fromAudioFormat AudioS8 = #const AUDIO_S8 

を書くことができthe docsを参照してください。