c++ - 如何使用 LLVM 访问外部结构?
问题描述
我在我的模块之外有这个结构,在我的 C++ 实现中:
struct A {
int a;
};
我如何创建这个接受 A 指针并更改它的函数?像:
define void @func(%struct.A*) {
%2 = alloca %struct.A*, align 8
store %struct.A* %0, %struct.A** %2, align 8
...
}
还是不可能?我需要在我的模块中创建一个结构并更新外部结构吗?
解决方案
是的,类型声明应该出现在它们使用的每个模块中。C++ 也是如此——struct A
如果你没有在源代码中声明它,或者任何包含,你就不能使用它。
但是,您似乎在代码中对指向该结构的指针进行操作。AFAIK,在这种情况下,声明一个空结构并使用指向它的指针是安全的。
推荐阅读
- powerbi - POWER BI:计算不包括过去 5 天的百分比
- c - 在 typedef struct 中对 int 数组使用 malloc
- javascript - 如何在任何网站(如 tawk.to 或支持板)中包含反应聊天应用程序?
- javascript - 对象文字键值作为类型(Typescript)。我做对了/做对了吗?
- mongodb - Mongo - 使用 findOne 命令返回指定的字段值
- java - 在不修改现有项目的情况下向现有反应器项目添加依赖项
- sql - oracle解释实时sql监控报告
- spring-boot - Spring 服务器不以执行器依赖项启动
- json - Scala,Circe - 如何检查 json 是否包含具有不同值的键?
- spring-boot - 如果我的其他微服务不是反应式的,我应该使用 Spring Cloud Gateway