C言語による小規模プログラミングまとめ
C言語プログラミングの必要性がでてきた。しかし、今までは無自覚にその場が乗り切れればいいような書き方をしてきたために。一度ちゃんとまとめなければと思った。
C言語による小規模なプログラミングについての考察。
まず小規模なプログラミングについて、一人で2,3時間で書き終わりそうな、ファイル数もそんなに多くない、というかわける必要もない程度ものする。
コーディングまでのプロセスは一般的なもののそれと同じなので、飛ばす。
ここでは特に、コーディング時に利用するべき適切なフォーマットについて言及する。
まず、データを取り扱うためにはどのような要素を持った変数型が必要か考慮する。
基本的は入力と出力用のデータ構造があれば十分で、これは入出力のフォーマットが決まれば、一意に定まるはず。
それを構造体を用いて表現する。
つぎに、基本として関数はすべて入出力用、システム用、拡張用としてジャンル分けすることにする。
出来るなら、入力用は必ずgetから始まるなとのルールで命名しておくといいと思う。
これで、ポインタと構造体が使えるならある程度見切り発車で雑に進めてもそれなりに読み返しやすいプログラムになるんじゃなかろうか。
この方針でひとつプログラム書いてみた。
処理はただ標準入力から名前と年齢を入力してもらって、標準出力に出すだけのもの。
#include<stdio.h> #include<stdbool.h> /*data structure*/ struct Profile{ int age; char name[10]; }typedef profile; /*IO function*/ /*input*/ void getProfile(profile *user){ printf("How old are you?\n"); scanf("%d",&(*user).age); puts("May I ask your name? (less than 10words)"); scanf("%s",&(*user).name); return; } /*output*/ void printProfile(profile user){ printf("age: %d\nname: %s\n",user.age,user.name); return; } /*system function*/ bool yesNo(char * message){ int responce; printf("%s yes=1,no=0 ",message); scanf("%d",&responce); return responce ? true: false; } /*extend*/ /*main*/ int main(void) { profile user; do{ getProfile(&user); printProfile(user); }while(!yesNo("ok?")); return 0; }