我正在为某个 C 项目编写 Haskell 绑定,并且有一个类型的函数
void foo(char *);
问题是foo
检查这个指针的NULL
值并做一些不同于正常行为的事情。在我的 Haskell 源代码包装器中,此函数具有类型foo :: String -> IO ()
并使用newCString
inside 来编组它的参数。
我想知道我如何在NULL
那里给用户能力通行证?从那以后,我一直期待这newCString ""
会给我,但事实并非如此。0
"" /= "\0"
我现在看到的唯一方法是使用“”作为用户想要的指示符NULL
,但这似乎很骇人听闻。我期待这个问题很常见,但没有找到关于 SO 的问题。