提问人:Kellan_B 提问时间:9/11/2023 最后编辑:Peter MortensenKellan_B 更新时间:9/17/2023 访问量:63
在 LLVM 中声明参数的字符串类型
Declare string type for parameter in LLVM
问:
如何在 LLVM C++ API 中声明字符串参数?例如,要声明一个参数,我会这样做:double
argTypes.push_back(Type::getDoubleTy(*context))
是否可以对字符串执行此操作?我知道字符串是 i8 的数组,但我只需要知道正确的函数调用。
答:
0赞
carraro
9/11/2023
#1
正如您所说,字符串可以表示为指向 i8 元素数组的指针,因此,为了表示字符串参数,您通常使用 i8*,因为参数通常是指向某些数据的指针:
argTypes.push_back(Type::getInt8PtrTy(*context));
请记住,此表示形式假定字符串以 null 结尾(C 字符串)。如果要传递也包含其长度的字符串(C++ std::string wise),通常会传递一个同时包含指向数据的指针(i8*)和长度(i64或其他整数类型)的结构。
评论