高级C嵌入式深入知识点记录
如果你爱编程,那么你就应该爱C,如果你爱C,那么你就应该爱指针,如果你爱指针,那么你就应该爱函数指针。 —— 东南大学 凌明
ARMCC编译器,函数怎么传参的?(寄存器用哪些?传参顺序?)
变量类型的大小?(char 几位? Short? Int? long?)
ARMCC编译器后,链接的地址分配?有哪些段?程序各部分存储位置?(绝对地址?相对地址?TEXT段?DATA段?)
ARMCC下,for循环i++,i—哪个效率相对更高一些?
如果要写一个内存拷贝的函数,你会怎么写?(*des++ = *src++? 汇编效率或许更高)
堆和栈的理解
很有意思的一个表达式:**(*(void (*)(void))0)();**
- 这条语句的意思是从0地址开始执行,在多数嵌入式系统中相当于系统的软复位
- **(0)();* ->函数调用
- (void (*)(void)) ->强制类型转换
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!