一、局部变量
1 | int a = 1024; |
1 | //申请栈空间,并返回对应的指针 |
1 | define i32 @main() { |
二、全局变量
1.定义全局变量
全局变量创建后需要放到module中才生效。
1 | auto globalVariable = new GlobalVariable(builder.getInt32Ty(), false, GlobalValue::InternalLinkage, builder.getInt32(1024)); |
2.引用外部全局变量
引用在其他模块中定义的全局变量
1 | auto globalVariable = module.getOrInsertGlobal("b", builder.getInt32Ty()); |
3.给全局变量赋值
1 | builder.CreateStore(builder.getInt32(2048), globalVariable); |
4.加载全局变量
1 | builder.CreateRet(builder.CreateLoad(globalVariable)); |
5.使用宿主语言中的全局变量
llvm代码可以访问宿主语言中的全局变量和全局函数。
1 | auto globalVariable = cast<GlobalVariable>(module.getOrInsertGlobal("b", builder.getInt32Ty())); |
- 本文作者: killf
- 本文链接: http://www.killf.info/编程语言/LLVM/LLVM入门系列之局部变量和全局变量/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!