アプリであそぼう。こどもも、おとなも。

PHP分かる人の為のC言語入門 前半

先月iphoneアプリを制作するべく、macbook proを購入し早速カンタンなiphoneアプリを試しに一つ作ってみました。

一応完成はしたのですが、Object-Cが分からないためプログラムのコード自体はほぼ本から丸写ししました。オリジナルのアプリを作るためにはもちろんObject-Cをしっかり理解しなくてはいけないわけでして、かつObject-Cを理解するためにはその根底にあるC言語を理解しなくてはいけないわけです。

というわけで、例の如くAmazonで評判のよかった本を購入し、一気に読み終わりました。
ザーっとみた感じ、基本的な文はPHPとそんなに変わらないのですが、データ型の宣言やヘッダファイル、ポインタの存在など全く違うところもいろいろありました。

今回はそういった「PHPはなんとなく分かるけど、Cとどう違うのよ」という人に役立つような記事を書いてみようと思います。
まーがんばってみましょ。

1、C言語の基本のキ

・通常C言語のファイルの拡張子は「.c」
・C言語はプログラム書いてハイ終わりではなく、書いたC言語のファイルをコンパイラ(機械語に翻訳)して出来たオブジェクトファイルをリンクして1つのプログラムファイルを完成させる。なんのこっちゃ。

とりあえず、フツーに書いたプログラムファイルを「コンパイラ」っちゅーソフトで変換して、それをいろんなファイル同士で結合して完成ファイルをつくるらしい。めんどくさいね。とりあえずコンパイラとしてVisual C++ 2010 Expressをインストールしてみた。これでいいのかな。このソフトだとファイルの結合を自動でやってくれるらしい。ふーん。

2、C言語のコードの基本

・C言語ではmain関数が一番最初に読み込まれ実行される
・C言語の機能を使うためには、その機能のヘッダファイルを読み込む必要がある
(PHPでは何もせずにprintなどの機能を使えるが、C言語ではそれぞれの機能毎のライブラリみたいなのを読み込み必要がある)

//ヘッダファイルを読み込み
#include <stdio.h> //セミコロンはいらないよん

int main(void)
{
printf("Hello! World!");
}

・文中に「%●」を入力すると、その部分に「,」の後の内容が埋め込まれる
文字 → %c、「’」でくくる。
文字列 → %s、「”」でくくる
整数 → %d、くくらない
小数 → %f、くくらない

int main(void)
{
printf("%cは文字です¥n" , 'A');
//Aは文字列です
}

3、変数

・C言語では変数を使用するまえに宣言が必要。またその際にデータ型を指定する

#include <stdio.h> //セミコロンはいらないよん

int main(void)
{
//int型の変数numを宣言する
int num;
num = 100;

//出力
printf("変数numの値は%dです" , num); //変数は「""」などで囲まない
//変数numの値は100です
}

・変数はブロック(関数)内で一番最初に宣言する

・ユーザーが入力した値を変数に格納させる場合、数字はscanf、1文字getcharはを使う。

#include <stdio.h> //セミコロンはいらないよん

int main(void)
{
//int型の変数numを宣言する
int num;

//整数の場合は%d、小数の場合は%lfを使う
scanf("%d" , &num) //scanfを使う変数のアタマには「&」をつける

//出力
printf("変数numの値は%dです" , num); /
//変数numの値は100です
}

4、演算子

・型を変換するにはこんな感じ。

inum = (int)dnum;

5、配列と定数と文字列

・定数(C言語ではマクロっていうらしい)を設定するのはこんな感じ

//define マクロ名 置換する文字列
#define NUM 100;

とりあえずここまでざっと書いてみて思うのは、やっぱりPHPと比べると「めんどくさ!」って感じですね。
いちいちライブラリみたいのincludeしなくちゃいけないとか、なんでそんなことせなあかんのやら。

まぁ本を読むだけでは何も習得できないので、これからVisual C++ 2010 Expressを実際に使ってみようと思います。

と、いうわけで後半に続く。