我不清楚__attribute__在CI中使用关键字已经阅读了gcc的相关文档,但我仍然无法理解这一点.可以帮助理解一些.
__attribute__不是C的一部分,而是GCC中的扩展,用于向编译器传递特殊信息.__attribute__选择的语法是C预处理器可以接受而不会改变的东西(默认情况下,无论如何),所以它看起来很像函数调用.但它不是函数调用.
与编译器可以学习的关于C代码的大部分信息(通过阅读它)一样,编译器可以通过__attribute__多种方式利用它通过数据学习的信息- 有时甚至以多种方式使用相同的数据.
该pure属性告诉编译器一个函数实际上是一个数学函数 - 只使用它的参数和语言规则来得到它的答案而没有其他副作用.知道这一点,编译器在调用纯函数时可能能够更好地进行优化,但是在编译纯函数时也可以使用它来警告你函数是否确实做了一些让它不纯的东西.
如果你可以记住(即使其他一些编译器支持它们)属性是GCC扩展而不是C的一部分,并且它们的语法不能以优雅的方式适合C(仅足以欺骗预处理器)那么你应该能够更好地理解它们.
你应该试着玩它们.选择那些更容易理解功能的功能并试用它们.对数据执行相同的操作(为此可能有助于查看GCC的程序集输出,但sizeof检查对齐通常会有所帮助).
| 归档时间: |
|
| 查看次数: |
6847 次 |
| 最近记录: |