
C语言
68lizi
这个作者很懒,什么都没留下…
展开
-
内联函数和宏定义
相同点:都能够节省频繁的函数调用过程中产生的时间和空间的开销,提高了程序执行效率。 都是将函数调用替换成完整的函数体差异:1.根本区别:宏定义仅仅是字符串替换,宏函数并不是函数,只是看起来像函数而已 内联函数是函数2.代码展开发生在程序执行的不同阶段:宏定义的展开是在预处理阶段 内联函数的展开是在编译阶段3.内联的其他不同内联函数做为类的成员函数时,可以访问类的所有成员,包括公有成员、保护成员和私有成员,而this指针也会被隐式的正确使用 内联函数的膨胀问题:如果一个内联函原创 2022-05-27 11:43:30 · 161 阅读 · 0 评论 -
结构体拷贝到字符串
错误 memcpy(wrmsg.buf,msg,sizeof(char_msg_t));语法错误正确(三种写法都可以) //结构体拷到数组 memcpy(wrmsg.buf,(char*)&msg,sizeof(char_msg_t));强转与不强转是一致的 memcpy(&wrmsg.buf,&msg,sizeof(char_msg_t)); memcpy(wrmsg.buf,&msg,sizeof.原创 2021-03-30 00:37:24 · 1264 阅读 · 0 评论 -
bss、data、text、栈、堆
段名存放类型bssBlock Started by Symbol , 以符号块开始的块,(全局未初始化读写数据块),是存放程序未初始化的或者初始化为0的全局变量和静态变量的一块内存区域没有初始化的全局变量在程序运行前由内核清0。初始值由用户自己定义的连接定位文件所确定data段-存放初始化好的数据rw dataread-write-data,已初始化全局变量、静态变量区具有初始值的全局变量、静态初始值变量ro dataread-only-data,常量数...原创 2021-02-24 01:07:44 · 200 阅读 · 0 评论 -
静态变量 、自动变量(局部变量)、全局变量、常量的存储位置
类型意义定义方式系统存储位置使用范围注意静态变量 (Static Variable)程序执行之前系统就为之静态分配(也就是运行时不再改变分配情况 )以staic存储类声明的变量没有赋初值存放在.bss段,有赋初值存放在.data段函数内外都可数值会有记忆全局变量(global variable)在外部定义的变量定义在外部(extern可加可不加)没有赋初值存放在.bss段,有赋初值存放在ro.data段函数外,可以使用extern修饰函数数内部和外部都可...原创 2021-02-24 00:03:13 · 1188 阅读 · 0 评论