Haskell预处理器 - 与花括号的磅标志

时间:2017-06-06 18:26:32

标签: haskell preprocessor

浏览Haskell SDL绑定的来源,我偶然发现了以下内容:

#include "SDL/SDl.h"

fromAudioFormat AudioS8 = #{const AUDIO_S8}

#{const AUDIO_S8}部分实际上做了什么?一目了然,它从SDL.h中提取符号,但我想确切知道它的作用以及如何构造类似的东西。我对const修饰符特别好奇。

1 个答案:

答案 0 :(得分:2)

那是hsc2hs语法。 const指令说“将此C表达式的文字数值输出到生成的.hs文件”。 #只调用预处理器。花括号是可选的 - 如果省略大括号,hsc2hs只是读到行的末尾,所以你可以轻松地写

fromAudioFormat AudioS8 = #const AUDIO_S8

有关特定预处理程序指令的更多信息,请参阅the docs

相关问题