水木社区手机版
首页
|版面-C程序设计语言(CProgramming)|
新版wap站已上线
返回
下页
|
尾页
|
1/2
|
转到
主题:使用gcc或者clang编译运行达到预期的代码是不是就算符合c语言了
楼主
|
b0207191
|
2023-04-12 09:22:03
|
只看此ID
就算和其他编译器不兼容
提这个问题是看见一个网页
https://www.cl.cam.ac.uk/~pes20/cerberus/supplementary-material-popl2019/generated_html_popl2019/pointer_offset_from_ptr_subtraction_auto_xy.c.html
说这种写法属于c标准中未定义行为,但是目前业界大多数是用gcc和clang,相当于事实的标准编译器
--
FROM 218.66.91.*
1楼
|
slowaction
|
2023-04-12 09:32:01
|
只看此ID
不是的
写规范的代码的意义是能稳定运行
而不是在某些情况下是正确的
【 在 b0207191 的大作中提到: 】
: 就算和其他编译器不兼容
: 提这个问题是看见一个网页
:
https://www.cl.cam.ac.uk/~pes20/cerberus/supplementary-material-popl2019/generated_html_popl2019/pointer_offset_from_ptr_subtraction_auto_xy.c.html
: ...................
--
FROM 223.104.42.*
2楼
|
flw
|
2023-04-12 09:31:58
|
只看此ID
标准是标准,实现是实现,扩展是扩展,不存在「事实上的标准」这么一说。
至于 ub,标准中有明文规定。
【 在 b0207191 的大作中提到: 】
: 就算和其他编译器不兼容
: 提这个问题是看见一个网页
:
https://www.cl.cam.ac.uk/~pes20/cerberus/supplementary-material-popl2019/generated_html_popl2019/pointer_offset_from_ptr_subtraction_auto_xy.c.html
: 说这种写法属于c标准中未定义行为,但是目前业界大多数是用gcc和clang,相当于事实的标准编译器
--
FROM 27.38.197.*
3楼
|
flw
|
2023-04-12 09:32:57
|
只看此ID
对,正确的代码可以保证总是正确。
错误的代码没有任何人或者组织有任何义务保证总是错误 —— 偶尔它们也会正常运行。
【 在 slowaction 的大作中提到: 】
: 不是的
: 写规范的代码的意义是能稳定运行
: 而不是在某些情况下是正确的
: ...................
--
修改:flw FROM 27.38.197.*
FROM 27.38.197.*
4楼
|
b0207191
|
2023-04-12 10:24:57
|
只看此ID
但是目前来看,能在gcc和clang上跑好像就算是“正确”代码了,没人去将所有编译器穷举一次来测试代码
【 在 flw 的大作中提到: 】
对,正确的代码可以保证总是正确。
错误的代码没有任何人或者组织有任何义务保证总是错误 —— 偶尔它们也会正常运行。
【 在 slowaction 的大作中提到: 】
: 不是的
: 写规范的代码的意义是能稳定运行
: 而不是在某些情况下是正确的
: ...................
--
修改:flw FROM 27.38.197.*
FROM 218.66.91.*
5楼
|
slowaction
|
2023-04-12 11:16:32
|
只看此ID
如果你规规矩矩写,根本就没有去穷举的必要
在所有的编译器,他就应该是正确的
如果不正确,那是编译器有问题
这个概率低到可以忽略
【 在 b0207191 的大作中提到: 】
: 但是目前来看,能在gcc和clang上跑好像就算是“正确”代码了,没人去将所有编译器穷举一次来测试代码
:
: 对,正确的代码可以保证总是正确。
: ...................
--
FROM 223.104.40.*
6楼
|
flw
|
2023-04-12 11:44:00
|
只看此ID
对,天就只有井口那么大。井口以外的都不是人。
【 在 b0207191 的大作中提到: 】
: 但是目前来看,能在gcc和clang上跑好像就算是“正确”代码了,没人去将所有编译器穷举一次来测试代码
--
FROM 27.38.197.*
7楼
|
xshoushoux
|
2023-04-12 11:50:17
|
只看此ID
第8行就已经是UB了,不用等到更后面
【 在 b0207191 的大作中提到: 】
: 就算和其他编译器不兼容
: 提这个问题是看见一个网页
:
https://www.cl.cam.ac.uk/~pes20/cerberus/supplementary-material-popl2019/generated_html_popl2019/pointer_offset_from_ptr_subtraction_auto_xy.c.html
: ...................
--
FROM 124.79.95.*
8楼
|
BigCarrot
|
2023-04-12 12:13:05
|
只看此ID
正确的做法是应该提一个bug给ubsan或asan
【 在 b0207191 的大作中提到: 】
: 就算和其他编译器不兼容
: 提这个问题是看见一个网页
:
https://www.cl.cam.ac.uk/~pes20/cerberus/supplementary-material-popl2019/generated_html_popl2019/pointer_offset_from_ptr_subtraction_auto_xy.c.html
: ...................
--
FROM 107.204.171.*
9楼
|
eggcar
|
2023-04-13 10:45:04
|
只看此ID
ub的意思是,即便是gcc和clang,换一个优化等级或者将来更新版本这个行为也可能发生变化
--
FROM 111.198.57.*
下页
|
尾页
|
1/2
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版