ファミコンに使われる7bitPCMに使えるかも?
と思い、ファイル書き込みをやったのですが、うまくいきません。
具体的には、ビットフィールドのアドレスを得ようとしました。と表示され、
コンパイルエラーが起きてしまいます。
どうすれば、ビットフィールドを使いつつ、ファイルに書き込めるでしょうか?
#include<stdio.h>
char *m;
struct {
unsigned bit7 : 7;
}b;
void Write(int size)
{
FILE *fp;
fp=fopen("bit7.pcm","wb");
for(int i=0;i<size;i++)
{
b.bit7=m[i];
fwrite(b.bit7,b.bit7,1,fp);
}
fclose(fp);
}
void Load(char fn[],int *size)
{
FILE *fp;
fp=fopen(fn,"rb");
fseek(fp,0x28,SEEK_SET);
fseek(fp,0x28,SEEK_END);
*size=ftell(fp);
fseek(fp,0x28,SEEK_SET);
m=new char[*size];
fread(m,*size,1,fp);
printf("sizeは、%dです。\n",size);
fclose(fp);
}
int main(void)
{
char fn[128];
int size;
printf("ファイル名を入力してください。->");
scanf("%s",fn);
Load(fn,&size);
Write(size);
delete []m;
return 0;
}