使用 C23 嵌入查找文件的大小

问题描述 投票:0回答:1

如果我这样做:

static char const file[] = {

#embed "this.c"

};

然后:

static char const copy[sizeof file];

我假设

sizeof file
将是一个编译时常量,并且是文件的实际大小。这个结论正确吗?

(我无法使用 GCC 13 或 Clang 18 进行编译,因此无法运行代码。)

    

c preprocessor c23
1个回答
0
投票
embed

扩展为有效的初始化列表,它应该可以工作。

#embed

表达式是有效的整数常量表达式,只要它们不使用 VLA 操作数,根据 C23 N3096 6.6:


整数常量表达式

应具有整数类型,并且只能具有... /--/ ...sizeof
结果为整数常量的表达式,...


    

© www.soinside.com 2019 - 2024. All rights reserved.