导图社区 C语言
这是一个关于C语言的思维导图,详细的总结了可重入函数工具。编译流程,声明解析,声明解析范例,堆栈。
这是一篇关于程序和库信息的思维导图,主要内容包括:(查看基础信息),获取ELF节的长度信息,显示可执行文件或库需要静态加载的动态库完整列表--显示加载时的依赖项,列出二进制文件的节信息,查看动态节,列出并查看段,查看重定位节,反汇编,列出库中未定义的符号,列出动态符号,列出二进制文件或库的符号表,查看节中的数据,符号的类型。
这是一篇关于设备驱动的思维导图,主要内容包括:主要功能,设备驱动模型。阐述了设备驱动的主要功能、信号定义、设备驱动模型等内容。
这是一篇关于算法的思维导图,主要内容包括:云计算,内存管理算法,分布式同步算法,避免死锁算法,进程调度算法,磁盘调度算法。
社区模板帮助中心,点此进入>>
互联网9大思维
安全教育的重要性
组织架构-单商户商城webAPP 思维导图。
个人日常活动安排思维导图
域控上线
西游记主要人物性格分析
17种头脑风暴法
python思维导图
css
CSS
C语言
声明解析
声明解析范例
编译流程
堆栈
工具
源码检查工具
可执行文件检查工具
调试工具
优化工具
可重入函数
不使用任何局部静态或全局的非const变量
不返回任何局部静态或全局的非const变量的指针
仅依赖于调用方提供的参数
不依赖任何单个资源的锁
不调用任何不可重入的函数
__attribute__扩展
纯函数
__attribute__((pure)) int xxx() {} 纯函数是一个无任何影响的函数 它的返回值仅反映了函数的参数或非易失性的全局变量 任何参数或全局变量的访问权限必须是仅供读取 循环的优化以及子表达式的消除可以应用至此类函数
常量函数
__attribute__((constant)) int xxx() {} 此类函数无法访问全局变量 而且无法以指针作为参数
无返回值的函数
__attribute__((noreturn)) void xxx() {} 用noreturn标记一个函数没有返回值 编译器可以进行额外的优化动作 因为它知道在任何情况下调用该函数都不会有返回值 此类函数返回void以外的任何值都毫无意义
分配内存的函数
__attribute__((malloc)) void* xxx() {} 如果一个函数所返回的指针绝对不可能是现有内存分配的别名 该函数刚完成新的内存分配并返回指向它的指针 可以使用malloc标记此类函数
强迫调用者检查返回值
将函数标记为已废弃
将函数标记为已使用
将函数或参数标记为未使用