网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月28日
漏签
0
天
c语言吧
关注:
799,021
贴子:
4,354,329
看贴
图片
吧主推荐
视频
游戏
29
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
GCC15发布了
只看楼主
收藏
回复
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
梳理一下GCC15对C语言支持,本人萌新,如有错误,请大佬轻喷
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
GCC C语言默认选项成为了-gnu23。(原文The default, if no C language dialect options are given, is -std=gnu23.)如果代码依赖于旧版本的C标准,则需要将-std=添加到构建标志中,或者移植代码;比如c23中,bool,true,false已经进入关键字,对于宏定义bool值的代码,可能导致兼容性问题。
重庆范本库科技有限公司
2025
c语言
下载,文档模板doc,海量资料内容,清晰完整,专业人士编写;
c语言
,下载即用,任意编辑打印,更多精选优质文档模板等您下载!
2025-04-28 23:09
广告
立即查看
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
对于c23的新增支持,主要有3个:
#embed 预处理指令支持。
新增了对 unsequenced和 reproducible属性的支持
-std=c23或-std= gnu 23的__STDC_VERSION__预定义宏值更改为202311 L。
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
没人吗
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
首先说明#embed.
#embed 是 C23 引入的预处理指令,用于在编译阶段将外部资源(如二进制或文本文件)直接嵌入到程序中。基本语法是
#embed "file.bin" // 嵌入当前目录下的文件
#embed <system_file.h> // 嵌入系统路径下的文件
#embed prefix("...") suffix("...") "file.txt" // 控制嵌入格式
这里资源可以是**任何文件**(二进制数据、文本、图像、音频等)。
- 该文件必须在翻译环境中可访问,即在预处理阶段能被编译器找到。
#embed将文件内容转换为 unsigned char数组,类似于:
如果文件不存在,会触发 编译错误(除非使用 if_empty参数)。
可选参数:prefix("str")在嵌入数据前插入代码: prefix("const uint8_t data[] = {")
suffix("str") 在嵌入数据后插入代码 |suffix("};")
limit(N)限制嵌入的最大字节数 limit(1024)只嵌入前 1024 字节
if_empty 文件为空时的替代内容 f_empty(0x00)
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
对于属性[[ unsequenced ]]和[[ reproducible ]],
unsequence表示函数 没有副作用(不会修改全局状态或依赖外部状态),且输出仅依赖于参数。
ex:[[unsequenced]] int square(int x) { return x * x;}
标记 unsequenced 的函数可被编译器更激进优化
reproducible 属性语法:c[[reproducible]] int func(int a, int b);
比 unsequenced 更严格,要求函数 在不同编译环境、不同运行次数下必须返回相同结果。
编译器必须保证:
禁用任何可能导致结果不确定的优化(如某些浮点运算重排)。
禁止使用随机性、时间依赖等非确定性操作。
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
最后的一项就是显示版本的,没啥用,略过去了
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
接下来介绍gcc对于c2y的新增支持,建议提前阅读C语言吧大佬XeO2对c2y介绍
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
总的来说,一共有12个:
泛型选择表达式带有类型操作数
支持对复数值进行 ++ 和 -- 运算
访问字节数组
对不完整数组类型使用 alignof
废弃隐式八进制字面量,并新增定界转义序列
仅部分实现,已支持新语法,但尚未弃用旧语法
命名循环
更现代的位操作工具:
新增 __builtin_stdc_rotate_left 和 __builtin_stdc_rotate_right 内置函数,供未来 C 标准库 <stdbit.h> 使用
case 范围表达式
if 声明(if 语句中声明变量)
引入复数字面量
避免未定义行为的绝对值计算
新增内置函数,供未来 C 标准库 <stdlib.h> 使用
允许对空指针进行零长度操作
(仅编译器支持,若使用 nonnull 属性,C 标准库头文件也需调整)
遂逸
帕秋莉糕
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
收藏,支持,LZ继续
贴吧用户_58JRtZ8
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
插更一条,msys2和Gentoo已经提供了gcc15。用这些的可以直接开始用了。但是Arch还是停留在gcc14
起个名字
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
没人,我用msvc
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示