标签: haskell preprocessor
浏览Haskell SDL绑定的来源,我偶然发现了以下内容:
#include "SDL/SDl.h" fromAudioFormat AudioS8 = #{const AUDIO_S8}
#{const AUDIO_S8}部分实际上做了什么?一目了然,它从SDL.h中提取符号,但我想确切知道它的作用以及如何构造类似的东西。我对const修饰符特别好奇。
#{const AUDIO_S8}
SDL.h
const
答案 0 :(得分:2)
那是hsc2hs语法。 const指令说“将此C表达式的文字数值输出到生成的.hs文件”。 #只调用预处理器。花括号是可选的 - 如果省略大括号,hsc2hs只是读到行的末尾,所以你可以轻松地写
hsc2hs
.hs
#
fromAudioFormat AudioS8 = #const AUDIO_S8
有关特定预处理程序指令的更多信息,请参阅the docs。