スポンサーリンク

C言語勉強に必要なコンパイラや必要なパッチや操作方法と2・16進数について説明

WindowsパソコンでC言語勉強しよう

『一緒にプログラムを勉強 C言語』以前からC言語には興味が有り入門用の本は購入していたのですが、なかなか実際に勉強する機会がなく、今回思い切って勉強する事にしました。そこでパソコン初心者さんも含めプログラムをやってみたいユーザーさんと一緒に勉強していきたいと思います。

今回思い切った理由の一つに、マイクロソフトから無償でCコンパイラ『Microsoft Visual C++ Toolkit 2003 』が無償で公開されました(Windows上でC言語をパソコンが解釈できる機械語に変換してくれるソフト)。併せてPlatform SDKを利用して、テキストエディータ(スタート→プログラム→アクセサリーにあるメモ帳)でプログラムを書いて勉強する事が出来るようになったのがきっかけです。もちろん全て無料です。

※無料ツールの為、インストール&利用に辺り全て自己責任上においてお願い致します。

プログラムを勉強するに辺り必要なもの(全て無料です)

・Microsoft Visual C++ Toolkit 2003

Platform SDK x86(現行版Windows用) Platform SDK x86(XP64 for Athlon64) Platform SDK x86(XP64 for Intel EMT64)

SDKインストール方法は「Typical」を選択してインストールすればOKです。

・Microsoft PowerToys for Windows XP

メモ帳(テキストエディタ)でvctk.batを作成してc:\Windowsフォルダーに保存する必要があります。

実行ファイルへのパス、インクルードファイルのパス、ライブラリファイルのパスを環境変数に設定するためのバッチファイル
かずぼんのホームページ様アップのものを、パスを変更させて頂いたものです。
以下のパス名で、SDKを参照できるようになります。
メモ帳に貼り付けし、【 setvctk.bat 】として保存すればOKです。

SET PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\Program Files\Microsoft SDK\Bin\Win64;%PATH%
SET INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;C:\Program Files\Microsoft Platform SDK\Include
SET LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;C:\Program Files\Microsoft Platform SDK\Lib

メモ帳にプログラムを書いてみる

準備が出来ましたら、メモ帳にプログラムを書いて、コンパイルするだけ。下はC言語でプログラムを作成する簡単な流れです。
※メモ帳を利用する場合、ファイル拡張子を変更するにはをご参照して頂いて、設定変更してご利用してください。
メモ帳に以下のように記述しコンパイルして、コマンドプロンプト画面から実行すると、 HLLEO と表示されます。

上の記述を 任意のフォルダー【test】に『hello.c』として保存し、コマンドプロンプトを実行して

setvctk ↓

と入力しEnterキーを押すとVisual C++ Toolkit + Platform SDK用の環境変数をセットします。

『hello.c』ファイルをコンパイルした画面です。C:\test>cl hello.c と入力してEnterキーを押すと『heloo.exe』にコンパイルされます。

下は『heloo.exe』を実行してみた画面です。HELLO と上手く表示できました。

プログラムを書く時の決まりとコンパイルするまでの流れ

プログラムを書く時の決まり。
赤線の部分は必ず必要な決まりです。
※重要、mainの書き出し方が標準化されました。MicrosoftCの場合は書きの書き方でも問題はありません。ただ途中から標準化に合わせた書き出しになっております。

プログラムを書く時の決まり↓
■ #include
■ main()  ※mainの後ろはかっこ、かっこ閉じるです。
■ {
■ }

プログラムを書く時に行数や空白を空けるのは特に問題ありません。専門書によれば書いたプログラムを見やすくする為にわざと行を空けたり空白を入れるとの事です。では、とりあえず書いてみましょう。
↓をメモ帳に書いて、好きなファイル名で任意のフォルダーに保存してください。(例:rensyu.c)保存先任意のフォルダー【test】とさせて頂きます。
printfでパソコンに文字を表示してもらうプログラムです。

#include
main()
{   printf(“C言語を頑張って勉強します。\n”);}

 

サンプルソース

メモ帳でプログラムソースを書いて保存しコンパイルする流れまでのサンプルです。

 

【ファイル】→【名前を付けて保存】を選択して下さい。任意のフォルダー【test】に【rensyu.c】として保存します。

次にコマンドプロンプトを開いて、ファイルを保存した【test】フォルダに移動します。

cd c:\test と入力してenterキー

C:\test>setvctk と入力してenterキーを押してコンパイラを利用できるようにします。下図の赤枠のように表示されれば利用OKです。
※この作業は一度だけです。改めてコマンドプロンプトを立ち上げた場合はsetvctkを実行しないといけません。

次に先程【test】フォルダーに保存したソース【rensyu.c】ファイルコンパイルします。
C:\test>cl rensyu.c と入力してenterキーを押してください。

下図の赤枠のように表示されればコンパイル成功です。rensyu.exeが作成されました。ちなみにソースの記述間違えの場合はエラーが表示されます。その場合はもう一度メモ帳からソースを確認してくださいね。

rensyu.exeを実行して、上手く【C言語を頑張って勉強します】と表示されるか試してみましょう。
c:\test>rensyu と入力してEnterキーを押してみてください。
C言語を頑張って勉強します と表示されるはずです。

以上でコンパイルするまでの流れを簡単ですが説明させて頂きました。
今回はprintfと言う文字を出力する関数で説明させて頂きました。printfに付いてはもう少しレポートさせていただいた上で次に代入と計算を一緒に勉強してみたいと思いまメニューから参照下さい。

ソースコードにコメントを入れる

ソースコードに任意のコメントを残すことができます。各パートにコメントを付けておくと編集が楽になると思います。

プログラムのサンプルを見ていると /* 何かのコメント */のような記述を欲目にします。これはプログラムに説明を入れてどういう働きをするかなど、プログラムソースを見直す時など判りやすくするためです。

サンプルソース、サンプルは先日勉強したファイルのコピーを少し改造して、一行任意の文字を新しいファイルに書き込むサンプルプログラムです。それぞれの働きにコメントをつけてみますね。
サンプルの /*  ここから開始等任意の記述  */ 赤い記号の記述に注目して下さい。

/* filesakusei.c */
#include <stdio.h>
#include <stdlib.h> /* 強制終了exit */

int main(void)
{

FILE *fileout; /* ファイルポインタ */

char aa[80],bb[80];

printf(“文字を入力してください:”);
gets(aa);

printf(“保存先ファイル名:”);
gets(bb);

fileout=fopen(bb,”w”); /* 書き込み用に開く */
if(fileout == NULL){
printf(“%sがオープンできません.\n”);
exit(1);
}

fputs(aa,fileout); /* aaに代入された文字を書き込む */

fclose(fileout);

return 0;
}

コメントは/* 何かのコメント */に書きます。コンパイルする時は無視されるわけです。

 

実行結果です

正確に定義された標準C (お知らせ)

この度米国規格協会ANSIに基づいたプログラム本体の書き出しが統一されました。
今までの『 main(){ プログラム本体 } 』書き方では、Microsoft提供のコンパイラ意外ではコンパイル時にエラーとなる可能性があり、下記に説明する『 int main(void){ プログラム本体 return 0;} 』の書き出しで標準化の旨ご理解の程よろしくお願い致します。

私を含めC言語ビギナー様にはご迷惑をお掛けしますがご理解の程よろしくお願い致します。
m(__)m

今までのソースコードの書き方

#include <stdio.h>
main()
{
printf(“HELLO\n”);
}

以下が標準化の書き出し方

#include <stdio.h>
int main(void)
{
printf(“HELLO\n”);
return 0;
}

【 void 】に付いてはこちらでも勉強しましたね。

ちなみに、関数を作る場合のサンプルです。【 void hello(void); 】のプロトタイプを先に書く場合です。

プロトタイプ無し。戻り値、引数無しにてhello関数を作成。

以上でmain関数の書き出し方の修正説明は終わりです。少し混乱すると思いますが慣れの問題なので、どんどん練習すれば違和感もなくなると思います

2進数と16進数について

二進数や十六進数の説明です。

通常人間の認識する数字は1.2.3.4.5.6.7.8.9.10.11~と10の位を繰り上がると11~19.20.21~29.30と1桁それぞれ繰り上がります。これを10進数と言います。しかしコンピューターが通常認識する数字はこの10進数ではなく、今から見てもらう2進数又は16進数で認識を行います。他に8進数というものもあります。

2進数:2桁数えると繰り上がる数え方です。0→1→10→11→100→101→110→111→1000→1001・・・と言う具合です。Windowsの電卓に2進数・16進数で表示させる機能があるのでそちらのほうでも確認が可能です。

16進数:16桁数えるごとに繰り上がる数え方です、但し10以上に付いては’A’(10※10進数の場合です。)’B’(11)’C’(12)’D’(13)’E’(14)’F’(15)と言う具合に数え、’F’と次の数は10→11→12→13→・・19→1A

通常使う10進数とコンピューター言語で使う2・8・16進数一覧表

10進数 (通常使う数値)2進数16進数8進数
0000
1111
21022
31133
410044
510155
611066
711177
81000810
91001911
101010A12
111011B13
121100C14
131101D15
141110E16
151111F17
16100001020

コメント

タイトルとURLをコピーしました