C语言之路
每个优秀或者不优秀的嵌入式开发者总有一条永远走不完的C语言之路
ToBeAITer
每天一个小技巧
展开
-
局部变量数组和malloc申请的指针使用区别和注意事项
大小和灵活性:函数内定义的局部变量的大数组大小在编译时就确定,而通过malloc申请的指针可以在运行时动态地调整大小,提供了更大的灵活性。数组越界:对于通过malloc申请的指针,特别是用于模拟数组的使用时,需要特别注意对指针进行正确的偏移和访问,避免数组越界访问的问题。栈空间消耗:函数内定义的大数组会在函数栈帧中占用一定的栈空间,而通过malloc申请的指针不会增加栈空间的消耗。内存位置:函数内定义的局部变量的大数组通常在栈上分配内存,而通过malloc申请的指针分配的内存位于堆上。原创 2023-08-11 15:25:31 · 450 阅读 · 0 评论 -
BSS段为什么一定要初始化
1. 什么是BSS段?一个程序本质上都是由bss段、data段、text段三个组成的。BSS段通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。2. BSS段的特点bss段是不会出现在程序下载文件(*.bin *.hex)中的,因为全都是0。如果把它们出现在程序下载文件中,会增加程序下载文件的大小。实际应用中,通常只需要把bss段的起始地址和结束地址保存起来,而不需要将程序下载文件中出现bss段(一堆0)将来真正运行程序的时候,再根据这两个数据进行bss段的初始化就行了.原创 2020-09-15 10:44:07 · 1261 阅读 · 0 评论 -
ELF文件的解析和加载
1. elf文件基本概念elf(Executable and Linkable Format)文件是一种目标文件格式,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。2. elf文件结构组成ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Section header table)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排,只有ELF.原创 2020-09-11 17:51:49 · 1675 阅读 · 1 评论