一、局部变量
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
 - 本文链接: https://www.killf.info/编程语言/LLVM/LLVM入门系列之局部变量和全局变量/
 - 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!