gnu c 通过 __atttribute__ 声明weak属性,可以将一个强符号转换为弱符号。编译器在编译源程序时,无论你是变量名、函数名,在它眼里,都是一个符号而已,用来表征一个地址。编译器会将这些符号集中,存放到一个叫符号表的 section 中。是时候表演真正的技术了。这时候,就需要用编译链接的原理知识来分析这个问...【阅读全文】
gnu 通过 __atttribute__ 扩展的 format 属性,用来指定变参函数的参数格式检查。我们经常实现一些自己的打印调试函数。这些打印函数往往是变参函数,那编译器编译程序时,怎么知道我们的参数格式对不对呢?因为我们实现的是变参函数,参数的个数和格式都不确定。所以编译器表示压力很大,不知道该如何处理。属性...【阅读全文】
gnu c 增加一个 __atttribute__ 关键字用来声明一个函数、变量或类型的特殊属性。声明这个特殊属性有什么用呢?主要用途就是指导编译器在编译程序时进行特定方面的优化或代码检查。比如,我们可以通过使用属性声明指定某个变量的数据边界对齐方式。__atttribute__((attribute))在这些属性中,aligned 和 packed...【阅读全文】