memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

mainがはじまり(その1)

やはり、最初はHello Worldです。Javaだと以下のように書きましたね。

class Ex1
{
  public static void main(String [] args)
  {
    System.out.println("Hello");
  }
}

で、これをC言語で書くと以下のようになります。字数が少なくなりましたね。ちょっと2つのプログラムを見比べてみてください。

#include <stdio.h>
void main()
{
  printf("Hello\n");
}

C言語オブジェクト指向言語ではないのでclassの定義はありません。public, privateという修飾子もありません。void main(までは同じですね。

Javaでは*1mainメソッドが最初に実行されますが、C言語も同じようにmainが最初に実行されます。このmainのことをmain関数と呼びます。Javaではクラスやメソッドを定義してプログラムを作りましたが、C言語ではmain関数をはじめ、その他の関数を定義してプログラムを作ります。

あと、Helloを画面に出力する部分System.out.printlnとprintfが違いますね。C言語の方が短くていいですね。ちなみにJavaでもprintfというメソッドが提供されています。でも授業では使わないはずですね。。。とりあえず飛ばします。

あ、そうそう。C言語のプログラムの最初の行に「#include 」ってありますね。Javaにはない。これがなくても問題ない場合もあるのですが、とりあえず基本ですので書いています。これはprintf関数を使うために書かなければならないものです。自分のプログラムでprintf関数を使う場合には書いておきましょう。なぜ書かなければならないか。。。はちょっと置いておきます。

で、せっかくなので実行方法を書きたいところですが。。。OSによって変わるのとWindowsマシンが手元にないので参考程度に書きます。以下のリンクに開発環境の構築方法が書かれていますが、どれを選んだら。。。と思われるでしょう。このページの著者も勧められていますが、とりあえず簡単なところでBCC+CPadがいいと思います。がんばれる人はCygwingccVisual Studio C++Eclipse CDTなど挑戦してみるといいと思います。将来的にC++DirectXでゲーム開発を目指しているなら、Visual Studioがいいですね。

Link: タダで始めるC/C++プログラミング for Windows

で、Javaの場合は「javac Ex1.java」でコンパイル、「java Ex1」で実行できました。Windows(BCC)の場合は、CPad上ならGUIで、コマンドプロンプト上なら「bcc32 hello.c」でコンパイル、「hello.exe」で実行できるはずです。

ちょっと省略しすぎですね。。。すいません。とりあえずこのエントリーの焦点は授業でJavaの基礎を学習していて、その人が「C言語ってどんな感じなの?」という疑問を少しでも解消できればと書いています。

C言語を使う目的はさまざまだと思いますので、本格的にプログラムを作って動かして確かめるには、やはりまとまった説明がある書籍やインターネット上のリソースを利用するといいと思います。

*1:Javaアプリケーションでは