• ベストアンサー

c言語を始めたい

c言語を覚えてみたいと思っているのですが、フリーソフトでそろられるものを教えて下さい(いろいろあってどれがいいのかわかりません)。あと文法の一覧や解説が乗っているサイトも教えていただければ嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

ひと口にC言語といいますが、やや乱暴に分類して、 C言語、 C++ VC++ C++/CLI があります。 VC++はさらにSDKとMFCの2種類があります。 VC++というのは、マイクロソフトが提供するC++の「開発ソフト?」で、特にSDKは、「VC++でC++をコーディングする」という感覚です。 MFC以外は、VC++ Express Edition など、ネットからタダで開発環境やコンパイラをダウンロードできますが、MFCを手に入れるには金を払う必要があります。 以下、長くなるので粗く書きます。 C++/CLIは、10人のうち9人以上が「やめておけ」というでしょう。 理想は、C++か、VC++SDKですが、たいへん難解です。 独学で使いこなすには、東大に現役で合格するくらいの頭脳が必要です。 (実際に私の知人は東大の理系に1浪で合格し、某国立大学の教授をやっていますが、VC++SDKに挫折しました) そうした意味で、もし質問者の方が東大生か、東大OBでなく、かつ独学なら、お金はかかりますが、MFCが一番いいのではないでしょうか。 MFCなら比較的簡単です。 (といっても、VBよりはかなり難しいですよ) MFCにせよ、SDKにせよ、関連サイトや参考書は、たくさんあります。 また、ゲームが目的なら、Cではありませんが、Javaという選択肢もあります。 これなら、MFCよりさらに簡単です。 このテの質問があると、上級者たちが次々に出てきて、難解なことを言い始めます。 内容的には正しいのですが、質問者には全く理解できなかったりします。 「自分が上級者であることをひけらかしたいのかなぁ」と思ってしまいます。 この世界には、ほんとうに不思議な人たちがいます。 あと、個人的意見ですが、言語を身につけようとするなら、ある程度投資も必要です。 ご健闘を!

その他の回答 (2)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

 ふむ。ゲームねぇ、後・・・・O・・・・S・・・・ですか。また高い志だねぇ。  私は一応かれこれ15年間C言語の勉強をしているが、OSを自分が作れるのかなんて思った事は・・・・あるけど、なかなかに難しいところだなぁ。まぁ、今はどんな方向に進んで良いのかも分からないという事なので、一応私なりに2つのシナリオを立ててみた。 ・うへぇ、OSはやっぱり敷居が高いのかなぁ。最初は言語もCじゃなくても良いかもな。もうちっとカンタンな言語で色々できるようになってからCにも手を出してみるか。 →C#言語かJava言語をお勧めする。C#言語であれば、Visual C# 2008 Express Editionという開発環境が無料でダウンロードできる。言語の勉強やゲーム開発には十二分に使用に耐えうるソフトだ。私も家ではVisual C# 2005 Express Editionを使用している。  Visual C++ 2008 Express EditionというC/C++言語の無料開発環境もあるにはあるのだが・・・・恐らく君が目標としているC言語の環境とは程遠いものだと思うが、頑張れば使いこなせるだろう。私は家ではかれこれ10年近くVisual C++ 6.0 Professional Editionを愛用しているのでC/C++開発はそちらで行っている。  Javaの開発であれば、やはりEclipseだろう。日本人向けに作成されたEclipseディストリビューションもあるのでそちらを使えば良いだろう。私は会社ではEclipse系、家ではNetBeansを使っている。Javaも、そんなにバカにしたもんじゃないんだよ。Java 1.1の頃は悲惨だったけどね、今普通に使われているJava 1.5では割とゲーム開発にも耐えられなくも無いような状況です。Java 6だと不満点はほぼ解消されている。  JavaもC#も、プログラムの基本を学ぶにはとてもよい言語だ。まずはその辺で土台を固めてみるってのも、実はC言語を学ぶ上でも重要な事だと思うよ。 ・C言語がオレを呼んでいる。オレがC言語を使うんだ。むしろ、C言語がオレに使われるんだ。OS? オレの手にかかりゃそんなの一発だって。 →C言語でOSの研究をするのであれば、Linux(LFSかGentoo Linuxがお勧めだ)、あるいはBSD(導入のしやすさは圧倒的にFreeBSDだが、OSカーネルの勉強になるのはOpenBSDかDragonflyBSDだと思う)を入れてカーネルのソースを追っかける事をお勧めする。ReactOSやMonaOSでも別に良いけど。Solaris Express Developer Editionは敷居が高いかなぁ。  パソコンが余ってるならそれに入れりゃ良いし、無ければ仮想マシンを使えば良い。VMware Server 1.0.4あるいはVMware Player 2.0.2、LinuxやBSDなど好きなOS、GCC、Eclipse+CDTあるいはNetBeans。全部無料! C言語の開発環境はいまや完全に無料でなんでも手に入る。ANo.1でも言っているが、「プログラミング言語C 第2版(訳書訂正版) ANSI規格準拠」は、C言語とは何ぞやから、C言語でアルゴリズムを構築するテクニックまで分かりやすくまとまっているのでぜひ一読をお勧めする。君の周りにC言語できる人が3人居たらそのうちの1人は必ず持っているだろう。後、OSの知識としてマシン語は必須と言えるので、「80x86/x87 ハンドブック」。若干情報が古い(8086~Pentium時代までのアセンブラでMMX命令やSSE命令は載っていないというか本が出た時代にはそれらの命令が無かった)のだが、IPL(Initial Program Loader、パソコンが電源が入って最初に読み込まれるマシン語のプログラムでOS本体をロードする処理を行う)を作成する分には全く問題ないはずだ。後、IBM PC/AT仕様の資料はその辺にいくらでも転がっている。アセンブラ自体はnasmという無料のx86アセンブラがあるのでこれを使えば良いだろう。  目標を高く持つのは大変良い事です。道は険しいと思うけど頑張って!

siosio7713
質問者

補足

大変詳しい説明をありがとうございます。これからがんばってみます!!

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 多くの人間が誤解しているこの「C言語」だが、正確に言うとC言語でできる事は次の3つしかない。 ・メモリからデータを読む ・メモリにデータを書き込む ・足し算を行う 「嘘ジャン、printfで画面にメッセージを表示できるジャン」と思うかも知れないが、実はprintfは厳密な意味ではC言語ではないんだ。広い意味ではC言語なんだけどね。標準Cライブラリと言って、C言語から呼び出せるライブラリの集まりの事だ。  C言語ってのはあくまでもfor文、function宣言などの文法でしかない。  なぜこんな事を言うかというと、おそらくあなたがイメージしていることが、我々には伝わらないからだ。あなたにとって「C言語を覚える=Cというプログラミング言語の文法を覚える」では決してないはず。何かを作りたいからだよね。で、何を作るかって事なんだが、 1.Linux上でC言語とGLIBCとその他色々なライブラリとsocketでネットワークプログラミング! 2.Windows上でC言語とWin 32 APIとDirectX APIを駆使してWindowsでゲームを作る! 3.C言語のクロスコンパイラと汎用ボードメーカ提供のライブラリを遣って組み込みプログラミング! など、C言語で何かをするっていうのに重要なのはライブラリなんだね。なので、最終的にこんな事ができるようになるといいよな~っと思っているその君の胸のうちをそっと我々に教えてもらいたい。ちなみに上のパターンだと 1.Linuxにはどんなディストリビューションでも大抵GCC(オープンソースコンパイラ)なるCコンパイラも用意されているだろう。メモ帳じゃやだというのであればNetBeans 6.0.1(オープンソース開発環境)やEclipse(オープンソース開発環境)を使えば問題ないだろう。 2.BCC Compiler 5.5.1(Borlandの無償コンパイラ)とPlatform SDK(MSの無償ライブラリ)とメモ帳? いやぁ、初心者には難しいと思うな。「Windowsプログラムを作りたいだけ」であればC言語諦めてVisual C# 2008 Express(MSの無償開発環境)でも使ったらという話なのだが、Visual C++ 2008 Express(MSの無償開発環境)ではPlatform SDKは使えないといううわさを聞いた、真偽は不明。 3.詳しく知らん。 C言語解説サイトならもう「猫でもわかる」で検索したら一発。本気でC言語をやってみたいという志があるのであれば、「プログラミング言語C 第2版(訳書訂正版) ANSI規格準拠」という本をぜひ購入して一読されたい。C言語を発明した方が著している本(の日本語訳)だ。

siosio7713
質問者

補足

長文の回答どうもありがとうございます。ちなみに私がやってみたいなと思っているのは、ゲームを作って見たいです。それでもっと出来るようになったら、OSが作れるらしいので作ってみたいなんて思っています。

関連するQ&A

  • C言語で何か作ってみようと思います

    こんばんは。 現在C言語を学んでおり、折角学んでいるのだから何か作ってみようと思っているものです。 そこでご質問があるのですが、C言語で何か(ゲーム、フリーソフト、メカ制御等)作っている過程を紹介しているサイト、書籍等を教えて頂けませんでしょうか? テトリスは作ったことがあります。 フリーソフトは作ったことがないので、作り方を紹介しているものがあれば作成したいと考えております。 メカ制御は、ロボット等のメカの簡単な動きをプログラムで制御してみたいなと思い、加えてみました。 その他、皆様がC言語で何かを作ってみた時に利用したものを教えて頂ければ幸いです。 以上、よろしくお願い致します。

  • C言語をおぼえたい!

    C言語を学びたいと思っているんですが超初心者でもわかるような解説や説明が書いてあるサイト知りませんか?知ってたら教えて下さい ちなみにこれを学んでゲームなんかを作ろうと思っています現時点では C言語について全くわかってないので1から学びたいです

  • C言語を学ぶ上での一番良いサイト

    最近、C言語を学び始めたのですが、 C言語について解説してあるサイトが多すぎて、 どれが一番よいのかわかりません。 制御文ぐらいまで習いましたが、 私が気に入ってたサイトではそこまでしか書かれていませんでした。 どこか、C言語について解説しているところで、わかりやすいサイトを教えてください。

  • C言語について

    フリーソフトでC言語のプログラミングの練習ができるものはありませんか?どうか教えてください。

  • C言語をどうしたら?

    学校でC言語を習っています。 そして学校ではC言語を確かビュジアルネットというソフトにソースファイルなどを入れてプログラムを練習しているのですが、家でも練習したいのでどうしたらいいか教えてください。できましたらフリーソフトとその使い方を教えてくださるとうれしいです。 そして、いつかは他のパソコンでもそれが体験できるようにしたいので、その場合の方法も教えてください。

  • C言語を始めるには?

    私はC言語に関して全くの初心者です。 これからC言語の勉強を始めたいのですが、 全くの初心者でもわかるようなサイトがあれば 教えて下さい。 お勧めのソフトなどがあれば教えて下さい。 まず何から手をつけたら良いのでしょうか? どうにかして理解したいのです。 回答お願いします。

  • C言語を・・・

    C言語を1から学べるようなサイト、もしくはフリーウェアのソフトはありませんか?

  • MikroC を使ってC言語

    MikroC を使ってC言語を勉強したいのですが中々分かる様な サイトが見つかりません、 日本語で分かり易く解説しているサイトは在りませんか? 有ったら是非教えてください、

  • C言語のフリーソフト。

    C言語を練習したいんですけど・・・。 C言語を練習できるフリーソフトってないですか?

  • C言語の解説サイト

    C言語初心者ですが、どこかいい解説サイトはないでしょうか。 探し回っても知りたいことが詳しく解説されているところがありませんでした。 特に、ビットについて詳しく知りたいと思っています。

専門家に質問してみよう