网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月12日漏签0天
c语言吧 关注:800,111贴子:4,365,643
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 9回复贴,共1页
<<返回c语言吧
>0< 加载中...

GCC15发布了

  • 取消只看楼主
  • 收藏

  • 回复
  • 贴吧用户_58JRtZ8
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
梳理一下GCC15对C语言支持,本人萌新,如有错误,请大佬轻喷


  • 贴吧用户_58JRtZ8
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
GCC C语言默认选项成为了-gnu23。(原文The default, if no C language dialect options are given, is -std=gnu23.)如果代码依赖于旧版本的C标准,则需要将-std=添加到构建标志中,或者移植代码;比如c23中,bool,true,false已经进入关键字,对于宏定义bool值的代码,可能导致兼容性问题。


2025-10-12 01:22:22
广告
不感兴趣
开通SVIP免广告
  • 贴吧用户_58JRtZ8
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
对于c23的新增支持,主要有3个:
#embed 预处理指令支持。
新增了对 unsequenced和 reproducible属性的支持
-std=c23或-std= gnu 23的__STDC_VERSION__预定义宏值更改为202311 L。


  • 贴吧用户_58JRtZ8
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没人吗


  • 贴吧用户_58JRtZ8
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先说明#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
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
对于属性[[ unsequenced ]]和[[ reproducible ]],
unsequence表示函数 没有副作用(不会修改全局状态或依赖外部状态),且输出仅依赖于参数。
ex:[[unsequenced]] int square(int x) { return x * x;}
标记 unsequenced 的函数可被编译器更激进优化
reproducible 属性语法:c[[reproducible]] int func(int a, int b);
比 unsequenced 更严格,要求函数 在不同编译环境、不同运行次数下必须返回相同结果。
编译器必须保证:
禁用任何可能导致结果不确定的优化(如某些浮点运算重排)。
禁止使用随机性、时间依赖等非确定性操作。


  • 贴吧用户_58JRtZ8
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最后的一项就是显示版本的,没啥用,略过去了


  • 贴吧用户_58JRtZ8
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接下来介绍gcc对于c2y的新增支持,建议提前阅读C语言吧大佬XeO2对c2y介绍


2025-10-12 01:16:22
广告
不感兴趣
开通SVIP免广告
  • 贴吧用户_58JRtZ8
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
总的来说,一共有12个:
泛型选择表达式带有类型操作数
支持对复数值进行 ++ 和 -- 运算
访问字节数组
对不完整数组类型使用 alignof
废弃隐式八进制字面量,并新增定界转义序列
仅部分实现,已支持新语法,但尚未弃用旧语法
命名循环
更现代的位操作工具:
新增 __builtin_stdc_rotate_left 和 __builtin_stdc_rotate_right 内置函数,供未来 C 标准库 <stdbit.h> 使用
case 范围表达式
if 声明(if 语句中声明变量)
引入复数字面量
避免未定义行为的绝对值计算
新增内置函数,供未来 C 标准库 <stdlib.h> 使用
允许对空指针进行零长度操作
(仅编译器支持,若使用 nonnull 属性,C 标准库头文件也需调整)


  • 贴吧用户_58JRtZ8
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
插更一条,msys2和Gentoo已经提供了gcc15。用这些的可以直接开始用了。但是Arch还是停留在gcc14


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 9回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示