使用说明:
· Ox开关是编译系统对所编程序的一种优化,在编译时就删去一些不必要的运行环节,可以使运行时间大幅度减少。
· Ox开关分为全局Ox和局部Ox,其中局部Ox似乎要比全局Ox高效。而每种Ox又分为O1、O2、O3三种,优化力度为O3最快,O2其次,O1最后。
注意事项:
· Ox开关只能在平时做题中(本机上、OJ上)使用,不能在正规比赛中使用,否则会被视为编译错误。
· 在调试程序时建议关闭Ox开关,因为开启后程序的某些执行顺序可能会因要最优化而被打乱,使调试难以执行。
全局Ox
在整个程序前加上以下代码,表示整个程序都开启OxO1
#pragma GCC optimize("O1")
#pragma G++ optimize("O1")
O2
#pragma GCC optimize("O2")
#pragma G++ optimize("O2")
O3
#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
局部Ox (据说比全局Ox高效)
在(所有/某些)子程序前加上以下代码,表示该子程序开启Ox
O1
__attribute__((optimize("-O1")))
O2
__attribute__((optimize("-O2")))
O3
__attribute__((optimize("-O3")))