99问答网
所有问题
当前搜索:
防止编译器优化
c语言
防止优化
答:
/O1:优化使产生的可执行代码最小
/O2:优化使产生的可执行代码速度最快 /Oa:指示编译器程序里没有使用别名,可以提高程序的执行速度 /Ob:控制内联(inline)函数的展开 /Od:禁止代码优化 /Og:使用全局优化 /Oi:用内部函数去代替程序里的函数调用,可以使程序运行的更快,但程序的长度变长 /Op...
如何
防止
因
编译器
开启
优化
,而导致程序执行错误
答:
避免的方法,我的经验:写c程序,尽量规矩;似是而非的概念,一定要搞清楚,别侥幸。因为侥幸而留的雷,现在不出问题,将来一定会出问题;不
优化
不出问题,优化就出问题。最后要说,每个应用程序,都让他开优化运行,只要时间允许,一定要查出开优化后出问题的原因。时间不允许,只能不开优化凑合着,...
怎么指定某段代码不被
编译器优化
掉
答:
a =2; 这个可能
编译器
会把前面两句给优惠掉, 这个如果 前面两句也是必须要执行的, 可以把 int a 改成 volatile int a。在编译的时候, 编译器可能会预测到某个变量的值, 就把中间的没有必要的语句给
优化
掉,volatile 关键字就是告诉编译器,不要做这样的预测性优化, 按照文本代码来翻译。
关闭编译器内联优化命令
答:
方法如下:
1、可以通过设置编译器选项禁止对strcpy、strcat等函数内联,这样就可以从汇编代码来关闭
。2、在release版本可以选择在配置属性点击C+进行优化。
volatile 可以用来修饰函数返回值吗
答:
其实这里的作用是帮助编译器进行优化,而不是
防止编译器优化
,对应oom()和do_exit()函数而言,它们是永远都不会返回的,如果还将调用它们的函数的返回地址保存在堆栈上的话,是没有任何意义的, 但是加了volatile过后,就意味着这个函数不会返回,就相当于告诉编译器,我调用后是不用保存调用我的函数的返回地址的。这样就...
STM32单片机程序死机,有哪些原因引起
答:
1、意外中断。是否打开了某个中断,但是没有响应和清除中断标志,导致程序一直进入中断,造成死机假象。2、中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了
防止编译器优化
中断变量,要在这些变量定义时前加volatile。其次在主循环中读取中断变量前应该首先关闭全局中断,...
MSP430中volatile unsigned int i这句话具体是什么意思?求大神解释一...
答:
:无符号整形数 volatile 是关键字 :确保这个变量不会被
编译器优化
.一般来说如果你定义个变量,而后面又不用它做其他事的话,编译器会认为这个是多余的,然后把它优化掉,就相当于没写过一样,加了volatile编译器就不会优化它了。更具体去看百科 综合起来就是:定义一个不会被编译器优化的无符号整形...
强制
编译器优化
的10种方法是什么?
答:
使用优化。使用各种优化技术可以提高程序的运行速度。例如,在编译器中启用
编译器优化
选项、使用特殊的数学库,如英特尔数学核心库等。使用内存池。使用内存池可以减少频繁的内存分配和释放操作,从而避免内存碎片的产生,提高程序的内存利用率。使用平行化编程。使用多线程或分布式计算等平行化编程技术可以将计算...
volatile是什么?
答:
1、volatile是一个特征修饰符(typespecifier)volatile的作用是作为指令关键字,确保本条指令不会因编译器的
优化
而省略,且要求每次直接读值。volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。2、简单地说就是
防止编译器
对代码进行优化。比如如下程序:对外部...
#define GPMCON *((voilate unsigned int *))0x7f008820 请问高手,这个...
答:
以unsigned int 为类型取法来取这个地址开始的存储内容。7:之所以加voilate 是因为,编译器如果
优化
掉这个地址,换成了其它替换地址,那么就可能失去原有的功能(比如如果这个地址是某个硬件端口地址),所以要用voilate来
防止编译器
自动优化代码。参考资料:Information Science Association ...
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
防止编译器优化的关键字
c语言防止编译器优化
c语言禁止编译器优化函数
voliate c语言
c语言禁止优化的关键字
C语言voliate关键字的作用
volatile c语言的用法
防止编译器优化变量
编译器的优化