我正在用c语言制作一款带有设置页面的游戏,我将这些设置存储在设置文件中。我有两个选择
int WriteSettings(void) {
FILE *File;
return (memcmp(&Settings, &DefaultSettings, sizeof(struct SettingsStruct))? GetGameDir() && (File = fopen(SettingsPath, "w")) && fwrite(&Settings, sizeof(struct SettingsStruct), 1, File) == 1 && !fclose(File) : !unlink(SettingsPath))? 0 : AlertError("Unexpected error occurred while saving settings");
}
此代码在需要时打开设置文件,写入并立即关闭,或者如果数据与默认值相同将删除设置文件。另一种选择是在游戏执行过程中保持文件打开,并且在设置更改时保持fwrite()
和fflush()
打开,从而保存。哪个选项是最优的?
nevilad:
设置通常很少被用户更改,因此立即打开、写入和关闭会更好。