|
-2
|
| personal_cloud · 技术社区 · 6 年前 |
|
1
1
是的,对于gcc5.x和更高版本,这个特定的表达式很早就被优化到
使用
那是
from the Godbolt compiler explorer with gcc8.3
x86-64 asm输出只是:
gcc4.9和更早版本只在稍后的过程中进行优化,而不是在
作为更大函数的一部分,编译器可以推断一些范围信息,如
但我怀疑海湾合作委员会是否会寻找这种机会,更不用说利用它了。 (请注意,您的问题标题专门针对针对Linux上x86-64的gcc, 在gcc中,例如,如果在单独的语句中完成。我的意思是,是的,在实践中可能是安全的,但是在解析之后不会马上被优化掉。而且绝对不是关于C++的。
我强烈推荐
不
这样做。使用
|
|
|
2
1
就这样。不多不少。该标准可以被认为是编译器供应商在生成有效程序时要遵循的一系列约束。当有未定义的行为时,所有的赌注都被取消。 可以 不能 在里面 你的计划。
然后它将是一个非标准的扩展,人们希望它被记录下来。我也非常怀疑这样一个特性是否会有很高的需求,因为它不仅允许人们编写不安全的代码,而且很难为用户生成可移植的程序。 |
|
|
3
1
下面是gcc扩展的列表。 https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
因此,gcc将您询问的指针算法的行为视为未定义的,条件与语言标准中描述的相同。
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 9 月前 |
|
|
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 10 月前 |
|
|
Marco · PyCharm Linux系统文件上os.stat异常 11 月前 |
|
|
Elektito · 变量地址不在/proc/self/maps中的堆栈范围内 11 月前 |