以下はヘッダファイル
C言語
1#ifndef WORD_H_ 2#define WORD_H_ 3#include <stdio.h> 4typedef unsigned short WORD; /* 符号なしshort intをWORDと呼ぶ*/ 5 typedef unsigned long DWORD; /* 符号なしlong intをDWORDと呼ぶ*/ 6typedef unsigned char BYTE; /* 符号なしcharをBYTEと呼ぶ*/ 7void fwriteWORD(WORD w, FILE *fp); 8 void fwriteDWORD(DWORD dw, FILE *fp); #endif /* WORD_H_ */ 9
以下はヘッダファイルでプロトタイプ宣言されている関数の内容
・void fwriteWORD(WORD w, FILE *fp)
引数wを256(=8bit)で割った余り求め、 ファイルに書き出す。 wを256で割った商をwに代入する。 この操作を2回繰り返す。 な お、ファイルの書き出しにはFILEポインタを利用せよ。
・void fwriteDWORD(DWORD dw, FILE *fp); 引数dwを256(=8bit)で割った余り求め、 ファイルに書き出す。 wを256で割った商をdwに代入する。 この操作を4回繰り返す。 なお、ファイルの書き出しにはFILEポインタを利用せよ。
あと指示として, 上記の関数の前にファイルオープンするとあります。
関数より前にファイルをオープンするという前提条件の上で、それぞれの関数でそのファイルに書き込む動作をするとき、fclose(fp)を最初の関数内で定義したら、次の関数を使う時再び、ファイルをオープンする作業が必要なのでしょうか?
C言語
1#include<stdio.h> 2int main(void) { 3FILE*fp=NULL; 4fp=fopen(" fp,"w"); 5return 0; 6} 7void fwriteWORD(WORD w,FILE*fp) { 8 int i,r,s; 9 for(i=0;i<2;i++){ 10r=w%256; s=w/256; 11 fputc(fp, "%d\n",r); w=s; 12 } 13fclose(fp); 14} 15 16void fwriteDWORD(DWORD dw,FILE*fp) { 17int i,r,s; for(i=0;i<4;i++){ 18r=dw%256; s=dw/256; 19fputc(fp, "%d\n",r); w=s; 20 } 21fclose(fp); 22 } 23
そこまでみんな暇じゃないのと、これ人に見せるコードだと思っていますか?
もういっかいセルフレビューしてください。