我一直在研究一些基本上只是尝试以列表的形式将结构写入二进制文件的代码,这不是问题,但我还需要在每个结构的结尾,都是一个char(我称之为END_CHAR)。我试图做的是:
#define END_CHAR 'F'
/*Some irrelevant code here*/
fwrite(&END_CHAR,sizeof(char),1,file_output);
我知道这不起作用,因为我要求查询的内存地址不存储在任何变量中。那么,做我想做的事情的正确方法是什么?
答案 0 :(得分:1)
在C中,'F'
只是编写数字70(假设是ASCII)的一种方式,所以它只是一个数字,你不能取一个数字的地址,只能取一个变量。 #define
不会改变这一点。所以做一个变量:
char endchar = 'F';
fwrite(&endchar, ...