06 2022 档案
摘要:返回局部变量地址 char* GetMemory(void) { char p[] = "hello world"; return p; } int main() { char* str = NULL; str = GetMemory(); printf(str); return 0; } GetM
阅读全文
摘要:在linux内核把ELF文件加载到内存中时,如果此ELF含有动态链接信息`linker`就会去解析并加载相应的依赖库。ELF动态链接信息保存在`.dynamic`节区中,类型为`DT_NEEDED`的项描述了对应的依赖库信息。 ,arm指令为32位(4个字节)。
阅读全文
摘要:编译器 一般编译器分为前端,中间优化和后端三部分。前端进行语法分析,中间进行优化后由后端编译成对应平台(arm,x86)的汇编代码(机器码)。现在主流的编译器有linux平台下的gcc 和 llvm-clang,以及windows平台下的msvc编译器。 LLVM gcc编译器虽然强大但是有一个缺点
阅读全文