はじめに
これまで組み込み制御のプログラムを作ってきた関係でC言語を開発言語として使ってきました。
学生時代はLispを使い、windows上でのツール作成でC++やC#を少々、趣味的にPHPやJava、Javascript、pythonとこれまで様々な言語に触れてきました。
どの言語も書き方の違いはありますが、基本的な機能や文法要素は同じと捉えています。
C言語をマスターしておくと、そのほかの様々なプログラム言語を使うとなったときでもスムーズにその言語を扱えると思います。
ということで、プログラミング勉強しよう。
と思っても参考書、分厚いですよね。1ページ目から勉強していくにも根気がいります。
文法だけ学んでも何の役に立つのか、実際にはどう使うのかわからなかったりします。
作りたいプログラムが組めない。
参考書にあるサンプルプログラムはできたけど、自分で作りたいプログラムに応用ができないということもあるかと思います。
このブログシリーズでは、文法要素ごとにプログラムを学ぶのではなく、取り扱うテーマにかかわる複数の文法要素を一気に身につけてしまおうという観点で書いていきます。
これまで組み込み制御プログラムの開発で培った知識も含めて書いていければと思っています。
前置きが長くなってしまいましたが、効率的にC言語を学んでいくブログシリーズをスタートしていきます。
それでは、はじめていきます。
コンピュータ言語のおはなし
パソコンをはじめとしたコンピュータは、電気信号のON状態、OFF状態、すなわち1か0かの2つの状態の組み合わせで実行する命令をつくっています。
一般的にコンピュータには中央演算装置(CPU)が搭載されていて、CPUは、機械語というコンピュータ言語で命令を扱います。CPUは機械語で書かれた命令を取り出し、解釈して実行します。
機械語は、数字の羅列で人がこれを記述するとなると大変です。
そこで登場するのがアセンブリ言語というものです。アセンブリ言語は、機械語と1対1に対応した言語でニーモニックと呼ばれる英単語のような記述でプログラムを構成できます。
アセンブリ言語で記述されたプログラムはアセンブラと呼ばれるソフトウェアで機械語に変換され、実行されます。
アセンブリ言語によってプログラムをつくることが少しだけ楽になるのですが、それでもまだまだ大変です。機械語命令と対になったアセンブリ言語で複雑なプログラムを書くとなった場合、その記述が膨大になってしまいます。修正や機能の追加など変更に対しても厄介です。
そこで登場するのがC言語などの高級言語と呼ばれるものです。
高級言語は、より直感的にわかりやすい記述形式となっていてます。
高級言語は、プログラムを一行ずつ逐次取り出して実行するタイプ(インタプリタ)と、ひとまとまりのプログラムを一括して解釈して実行するタイプ(コンパイル)に分けられます。
インタプリタ型には、Lispやpythonなどがあり、コンパイル型には、C言語やJavaなどがあります。
C言語をはじめとしたコンパイル型の言語は、コンパイラというソフトウェアによって機械語に変換されます。それによって自分で作ったC言語プログラムなどがコンピュータで実行され動作させることができるのです。
C言語を学ぶ上でコンパイラを含めた開発環境がないと作ったプログラムが思い通りに動作するのか確認ができません。なので、まずは、その開発環境づくりからスタートする必要があります。
ここではコンパイラを含めたC言語の開発環境は、Visual Studio Community2022を使います。
また、プログラムを実際に書くために必要となるソフト、エディタと呼ばれますが、エディタにはVisual Studio Codeを使っていきます。
Visual Studio Community2022で開発環境をつくる
まず、C言語プログラムを作成して実行する環境をつくっていきます。
ここでは、Visual Studio Community2022とVisual Studio Codeを使います。
MicrosoftのVisual StudioのページにあるVisualStudioのダウンロードとあるプルダウンメニューの中からCommunity2022を選択して実行ファイルをダンロードします。
Community 2022は、個人的に学習用として使用する範囲において無料で利用可能です。
ダウンロードしたVisualStudioSetup.exeというファイルを実行します。
Visual Studio Community2022をインストールします。
C++によるデスクトップ開発にチェックを入れてインストールを実行します。
インストールが完了したらコマンドプロンプトを起動します。
Visual Studio 2022の中にあるDeveloper Command Prompt for VS 2022を実行すると、コマンドプロンプトが立ち上がります。
コマンドプロンプトに「cl」というコマンドを入力してenterキーを押すと次のように表示されてコマンドラインが戻ってくればOKです。
続いて、Visual Studio Codeをダウンロードしてインストールします。
Visual Studio Codeは、エディタとして様々なコンピュータ言語に対応していて、文字の色分けや自動インデント入力サポートなど便利な機能がついています。
MicroSoftのVisual Studio Codeのページから実行ファイルをダウンロード、インストールします。
とりあえずプログラムをつくってみる
そもそもプログラミングとは何か?というところもあります。
そのあたりは、プログラミングとは、、、を考えてみた記事がありますのでそちらにまわすとして、早速プログラムをつくってみます。
最初にこれからプログラムをつくっていく上での作業場所を固定します。
ここでは、Cドライブのprogフォルダにあるcというフォルダを作業場所としています。
作業フォルダはやりやすいところで大丈夫です。
作業フォルダを作ったらそこにプログラムファイルを作成します。
test.cというファイル名で作りました。この「test」というファイル名も自由に決められます。「.c」という拡張子はC言語プログラムであることを示す拡張子になりますので、C言語のプログラムは必ずファイル名+「.c」となります。
test.cファイルを実行する際に実行するプログラムを選択してVisual Studio Codeを常に使って.cファイルを開くとしておくとC言語プログラムはVisual Studio Codeで開くことができます。
test.cファイルにプログラムを書いていきます。
次の文をtest.cに書いてみます。
#include <stdio.h>
main()
{
printf("Hello World!!");
}
記述出来たらファイルを保存して、Developer Command Prompt for VS 2022を立ち上げます。
作成したtest.cファイルを実行して動作を確認します。
①、②は確認です。clというコマンドに対して②の使い方が表示されていれば大丈夫です。表示されない場合は、開発環境を見直してみてください。
コマンドプロンプトを立ち上げると
C:\Program Files\Microsoft Visual Studio\2022\Community>
というようにコマンド実行のフォルダが表示されます。
このファルダ位置を作業フォルダにもっていきます。それが③の部分です。
コマンドプロンプトの命令で「cd」は現在のフォルダ位置を変更する際に使う命令です。
「cd ../」とすると一つ上の階層のフォルダに移動します。階層をCドライブの部分までもっていって、その状態でフォルダをprogファルダの中にあるcフォルダにしています。
C:\>cd prog/c
とあるところです。これで作業フォルダに移動しました。
確認で④を実行してみます。
C:\prog\c>dir
dirという命令は、現在のフォルダにあるファイル等を表示します。
⑤にあるように作成したtest.cが表示されるはずです。
この状態でtest.cプログラムをコンパイルします。
C:\prog\c>cl test.c
コンパイルは、clというコマンドを使います。
clの後にスペースを空けてファイル名を記述します。
コンパイルが実行されてプログラムが正しく記述されていると⑦のようになります。
ここでエラーが表示された場合は、もう一度test.cの中身を見直してみてください。
コンパイルができたらtest.exeという実行ファイルが同一フォルダ内につくられます。
この実行ファイルをコマンドプロンプト上で動作させます。その記述が⑧です。
C:\prog\c>test
実行ファイルは拡張子の.exeをとった形で動作させます。
ここでは、単にtestと書いてenterキーを押すだけです。
プログラムが実行されて、結果として「Hello World!!」という文字が返ってくれば正しくプログラムが実行されたことになります。
ということで今回はここまでとします。
まとめ
今回は、プログラム言語について少し説明しながらC言語プログラムを書いて実行する環境づくりを主に書いてきました。テストで書いたtest.cは正しく実行できたでしょうか?
ここで書いたincludeやstdio.h、main、printfとは何なのか?
そのあたりの疑問を今後このブログシリーズで説明していきます。
最終的には、C言語マスターを目指してテーマに沿ってC言語文法を見ていきたいと思います。
次回は、『printfから学ぶ「関数」』についてを書いていきます。
価格:2,530円 |
コメント