【发布时间】:2015-08-05 19:01:17
【问题描述】:
我想根据某个值从文件中读取不同的数据结构。在某些解释语言中,我可以执行类似于以下代码的操作。在 C++ 中,我会扩展 WindowsOptions 类。但是出于某种原因,我选择了 C。我可以为每种情况编写两个单独的代码块。我还有其他选择吗?这个问题可能很愚蠢,但你对那个 HTML 人有什么期望。
if(options.signature == 0x20b) {
PEOptionsHeaderWindowsPlus windowsOptions;
} else {
PEOptionsHeaderWindows windowsOptions;
}
fread(&windowsOptions, sizeof(windowsOptions), 1, file);
printf("%hu", windowsOptions.MajorOsVersion);
【问题讨论】:
-
您的代码无法编译,
sizeof(windowsOptions)无法工作,因为windowsOptions超出范围。也就是说,PEOptionsHeaderWindows的定义是什么? C/C++ 中的大多数 PODO 将包含cbSize或类似成员,以允许保存运行时大小信息。
标签: c data-structures scope