2017-07-05 20 views
-1

私は基本的に構造体をリスト形式でバイナリファイルに書き込もうとしていますが、これは問題ではありませんが、すべての構造体の終わりにマクロを書きます。これはcharです(私はEND_CHARと呼んでいます)。私は何をしようとして使用することだった:バイナリファイルにcharマクロを書き込む

#define END_CHAR 'F' 
/*Some irrelevant code here*/ 
fwrite(&END_CHAR,sizeof(char),1,file_output); 

私は任意の変数に格納されていない文字のメモリアドレスを求めているので、これは動作しないことを理解しています。だから、私がやりたいことをする正しい方法は何ですか?

+0

あなたは番号70のアドレスを要求しています - それは意味がありません。実際にその番号を場所に入れてそのアドレスを取得する場合は、スペースを割り当てる(つまり、変数または定数を作成する)作業をしてからアドレスを取得する必要があります。 –

+4

'putc(END_CHAR、file_output);' – wildplasser

+0

ありがとう!私は新しい変数を作成したくないので、実際にこれを使用して終了しました。 – Andibadia

答えて

1

Cでは、'F'は数字70(ASCIIと仮定します)を書いているだけなので、それは単なる数字であり、変数の数字だけを扱うことはできません。 #defineはそれを変更しません。したがって変数を作成してください:

char endchar = 'F'; 

fwrite(&endchar, ... 
+0

OPがすでに実現しているので、あなたの答えは余分です。 – wildplasser

+0

私は答えがOPによってのみ読まれることができることを知らなかった... –

+0

助けてくれてありがとう! – Andibadia

関連する問題