アルゴリズム入門で、C言語のプログラムを
いくつか紹介してあるので、だいたいお分かりかと思いますが、次のような構成になっています。
- #include <?????>
- 関数の宣言
- 変数の宣言
- 関数群(実際のプログラム)
|
最初の「#include」は、標準で用意されている関数(以下標準関数と略す)を使用する場合の
宣言です。今は「おまじない」と覚えて置いてください。例えば、画面に文字を表示する
「printf」関数や、キーボードから文字を入力する「scanf」関数を使用したい場合は
「stdio.h」というファイルを必要とします。その場合に「#include <stdio.h>」という
1行を最初に書かなければなりません。
次の「関数の宣言」とは、自分が作った関数の書式を最初に宣言しなければなりません。
これはコンパイラがソースファイル(「*.c」という自分が作ったファイル)の一番最初から
コンパイルしていくので、この宣言がないと、コンパイラがどのようにコンパイルするのか
わからず、エラーになってしまいます。自分が作った関数が、使う部分よりも前にあるときは
必要ありませんが、一応宣言しておく方が間違えが少なくなり、良いと思います。
なお、最初の「#include」は、標準関数の宣言の集まりだと思っていただいて結構です。
「変数の宣言」は関数同様、変数を宣言するものです。アセンブラでは変数はプログラマーが
それが何ビットの大きさの変数で、符号付きなのか、符号なしなのかなどの情報を知っているので、
その通りに書いていけば良かったのですが、これではプログラマーが変数の情報を忘れてしまうと
思うようにプログラムが動きません。C言語ではこのようなことがないように、あらかじめ
変数の取り扱い方(大きさ、符号付き・符号なしの区別、整数か小数かなど)をコンパイラに
教えておきます。これが変数の宣言です。変数の宣言はどこで宣言するかによって、
どこでその変数を使えるかが変わってきます。これについては追々説明します。
関数群(実際のプログラム)はプログラムの核となる部分です。「main」という名前の
関数から実行されます。main関数から標準で用意されている関数(printfなど)を呼び出したり、
自分で作った関数を呼び出したりします。
#include <stdio.h>
// ↓関数の宣言
void init();
void insert_sort();
void disp();
// ↓変数の宣言
int A[10];
int n;
// ↓関数群(実際のプログラム)
int main(int argc, char* argv[]){
init();
insert_sort();
disp();
return 0;
}
void init(){
A[0] = 84;
A[1] = 121;
A[2] = 43;
A[3] = 93;
A[4] = 140;
A[5] = 83;
A[6] = 14;
A[7] = 93;
A[8] = 181;
A[9] = 58;
n = 10;
}
void insert_sort(){
int i = 1;
while(i < n){
int j = i;
while(j != 0){
if( A[j-1] > A[j] )
j = 0;
else{
int a = A[j-1];
A[j-1] = A[j];
A[j] = a;
j--;
}
}
i++;
}
}
void disp(){
int i = 0;
for ( ; i < n ; i++ )
printf("%d ",A[i]);
printf("\n");
}
|