static的作用
1所有未加static前缀的全局变量和函数都具有全局可见性。
2 static的第二个作用是保持变量内容的持久。
3 static的第三个作用是默认初始化为0。
gcc链接阶段的作用
链接库文件(包括静态库和动态库)
在-O1下:
编译会尝试减少代码体积和代码运行时间。但是并不执行会花费大量时间的优化操作。
-O2:进一步优化.GCC执行几乎所有支持的操作但不包括空间和速度之间权衡的优化。-O1比较该优化-O2将会花费更多的编译时间当然也会生成性能更好的代码。
-O3:
这种优化技术不为函数创建单独的汇编语言代码,而是把函数代码包含在调度程序的
代码中。 对于多次被调用的函数来说, 为每次函数调用复制函数代码。 虽然这样对于减少代码长度不利, 但是
通过最充分的利用指令缓存代码, 而不是在每次函数调用时进行分支操作, 可以提高性能。