はじめのプログラミング。最初の一歩は、誰もがソースの改造から
最初のプログラム main関数
main関数
#include <stdio.h> int main() { printf("HelloWorld!\n"); return 0; }
コードと文化
プログラムを作ることをプログラミングと呼びます。プログラムを作るときに書くファイルをソースまたはソースファイルと呼びます。
ソースの中身をコードと呼びます。コードを構成する語句をステートメントと呼び、数値や演算記号、文字列、そしてその組み合わせを式と呼びます。
この辺の呼び方は「文化」によって異なる場合があります。プログラムの世界に限った話ではありませんが、グループや団体、会社や部署によってルールやモラルが異なる場合があり、これを「文化」と呼ぶ場合があります。
文化は必ずしも良いものばかりではないので、自分たちとの違いや認識の齟齬、癖を指して「文化の違い」等と揶揄する場合も有ります。万国共通であるほうがトラブルの種が減るのですから「文化」など無いほうが良いのです。
プログラムのコードとその順序にはすべて意味がある
プログラムに書かれる文字と順番には全て意味があります。基本的に、1行目から順に実行されます。
#include <stdio.h> は、stdio.hというヘッダーファイルをここに挿入するという意味です。
stdio.hには下で使用するprintf等の関数の定義が書かれています。
定義が無いと、コンパイラはprintfをどのように解釈すれば良いのか分からないのです。
int main()は「以下にmainという関数の内訳を書きます」という意味です。
アプリケーション等のC言語等のプログラムは、実行されると最初にプログラムを起動するための環境を整え、次にmain関数を実行するようになっています。
関数というのは定義された処理を行い、定義された数値を返すものです。
mainの前にvoidと書いてある場合は、何も返さないという意味です。
mainの前にintと書いてある場合は、int型の数値を返すという意味です。
voidの場合は、関数から戻るときにreturn;と書きます。
関数の最後の行を実行して戻るだけ、という場合はreturn;は省略できます。
intの場合は、return 0;やreturn -1;等の様に返す数値を表現します。
{}は関数の中身の開始と終わりを明確にするための記号です。
;は関数や式等の文の区切りを示す記号です。
言語によっては、改行は文と文の区切りとなり得ますが、C言語では、改行は明確な区切りとはなりません。
必ず;や{}等で区切ります。
#から始まる特定の文は、1行で書くというルールの元、区切り文字は書かないことになっています。
逆に、1行で書ききれないときは\という記号を用いて行間が続いているという表現も可能です。
\はPCによって形が異なります。
日本語Windowsでは半角の¥、Linuxでは半角の\に見えます。
日本語キーボードでは「¥」と書いてあるキーです。
英語圏のキーボードでは\と書いてあるキーです。
両方のキーが付いているキーボードもありますが、その場合はどちらを押しても同じです。
printf関数の文字列で使う特殊な文字
printfは最もポピュラーな関数で、指定した文字列をstdoutというユーザーインターフェースに出力する関数です。
文字列は、””で囲って表現します。
\nは改行文字を示します。
文字列における\はエスケープ記号と呼ばれ、\の後に続くのは文字ではなく特殊なコードであることを示します。
printfを2行書いて、\nを消したり\だけ消したりしたときの動作の違いを見比べてみると良いでしょう。
少しだけプログラムを改造して理解を深めるのがプログラミングの第一歩です。
きっと誰もが同じ道を歩んでいると思います。