【发布时间】:2020-10-09 08:26:31
【问题描述】:
这样做可以吗?
struct MyStruct {
int x;
const char y; // notice the const
unsigned short z;
};
struct MyStruct AStruct;
fread(&MyStruct, sizeof (MyStruct), 1,
SomeFileThatWasDefinedEarlierButIsntIncludedInThisCodeSnippet);
我通过从文件写入整个结构来更改常量结构成员。这应该怎么处理?如果一个或多个结构成员是常量,这是写入非常量结构的未定义行为吗?如果是这样,处理常量结构成员的公认做法是什么?
【问题讨论】:
-
你在编写什么样的软件?什么大小(数百万 C 源代码行)?什么市场?什么编译器?什么操作系统?
-
请在您的问题中提供一些minimal reproducible example。
标签: c struct constants undefined-behavior bus-error