C言語について学ぶにあたって、今後の方向性

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
内田

C言語について学ぶにあたって、今後の方向性

#1

投稿記事 by 内田 » 17年前

こんにちは。内田と申します。

現在、私は高校1年生です。
学校の授業でC言語の基礎について学び、それからプログラミングに興味が湧きました。

そんななか、C言語の質問に答えてくれる素晴らしいサイト様を見つけました。

今回の質問内容は「今後C言語を学ぶにあたって」です。
私は今、C言語の基礎(printf,for,while関数)を学び、四則演算のプログラムをつくることができるようになった程度です。

C言語を学ぼうとしているのですが、C言語つかってどういったことができるのでしょうか?
検索しているのですが、ゲームを作ったり、人の役立つようなプログラムとありますが
それは具体的にどういったことが可能なのでしょうか?

高校卒業までにはフリーソフトを作ったり、簡易的なゲームを作れるようになりたいのですが
これを達成するためにいまからすべきことや、オススメの学習方法などありますか?

今使っているパソコンはwindowsXPでVisualC++2008を導入ずみです。
この環境のもと、学習をしていきたいと思っております。

また、私は将来はweb関係の職に就きたいと思っています。PHPやPerl、ASPなど
各種言語も今後は学習していきたいです。だから、C言語はしっかり学んでおきたいと思います。

ご回答・アドバイスなどいただけると嬉しいです。
ご多忙化と思いますが、よろしくおねがいします。

管理人

Re:C言語について学ぶにあたって、今後の方向性

#2

投稿記事 by 管理人 » 17年前

>C言語つかってどういったことができるのでしょうか?

私も同じ事を最初思いました。
最初黒い画面に計算結果だけ表示されるこのプログラム、一体何の役に立つのか?と。
でも、何でも出来るんです。
恐らく質問者さんが今まで見てきたソフトはほぼ全てのものが作れるでしょう。
時間的、技術的な話はともかく、WindowsのようなOSも作ることが出来ます。
(実際にその本機で動かせるかどうかは別として)X-BoxやPS3のような本格3Dゲームも作れますし、ワードやエクセルみたいなソフトも作れます。
オンラインゲームも作れますし、何でも作れますよ。
ご覧頂いたかどうかわかりませんが、現在公開中の四聖龍神録もまたC言語で作りました。
実際に企業に入って開発するときはC++になると思いますが、最初はC言語で十分だと思います。

もしWeb関係の仕事に就くのならCよりJAVAをやったほうがいいかもしれませんが、今Cに興味があるのなら、Cを勉強してからでもいいと思います。
CとJAVAは他の言語に比べてそっくりなので、すぐに勉強できるでしょう。
PHPやパールは触り程度しかやってないので詳しく言えませんが、
高校のうちは自分の好きな興味の沸くことだけやっていればいいと思います。

なので、今興味のあるものを沢山作ってみて下さい。
今どんなものに興味があるのでしょう?
2Dゲーム、3Dゲーム、ワードのようなウィンドウズソフト、各種ツールなど何でもあると思いますが、
基本的なCの知識が付いたら、次は自分の好きなものを沢山作っていけばいいと思います。

内田

Re:C言語について学ぶにあたって、今後の方向性

#3

投稿記事 by 内田 » 17年前

管理人さんへ。

お忙しいところ、ご丁寧なご回答、本当にありがとうございます。

どのC言語解説サイトへいっても「C言語でできること」が莫大で
把握しきれてなかったのですが、身の回りの製品やソフトはCによるプログラミングで
成り立っていることを知り、驚きが隠せません!

JAVAにも興味がありますが、今後は学校の授業でCがメインとなるので
その予習としてCを学んでいきたいと思います。

高校卒業までにはwebページを製作する上で便利なフリーソフト(エディタなど)を作れたらと思います。
これが最終的な目標になりますが、ゲームをつくるという経験も活かして力をつけていきたいです。

今からCの基礎を復習し、どんどん作っていきたいと思います。
そして各種言語の学習にも力をいれ、夢を実現させたいです。

本当にありがとうございました!
<!--1

たぬき

Cとアセンブリ

#4

投稿記事 by たぬき » 17年前

C言語のプログラムとアセンブリ言語のプログラムを比べた時に、実質的に同じ点や個となっている点ってなんですか?

どなたか教えて下さい。

やそ

Re:Cとアセンブリ

#5

投稿記事 by やそ » 17年前

うーむ、漠然とした質問で答えにくいですが、

人間がまともに読めるコード(ソースプログラム)を翻訳して機械語に直して実行するやり方は一緒です。
翻訳の仕方をCはコンパイル、アセンブラはアセンブルと呼んでいます。

一番分かりやすい違いはソースプログラムの命令ですよね。
Cでは関数と言う形で表現していますが、アセンブラでは1命令=機械語が基本です。
もちろん、命令を組み合わせてライブラリを作ったりしてますが。

また、変数の定義においても特徴的な違いが有りますね。
Cでは自分の好きな名前で変数を宣言できますが、アセンブラでは基本的にはレジスタで管理されます。レジスタはCPUによって個数が決まっています。
レジスタにはそれぞれに役割があり、汎用的に使用できるレジスタもありますが、計算用やスタックポインタ用、アドレス指標(インデックス)用など用途が決まっているものもあります。
なので変数を使いまわしたい場合などは、メモリを使います。Cのポインタと同様にメモリを確保して、
そこの値を操作し、計算する際にはレジスタにコピーして使用したりします。

なので、直接的にメモリ操作をする機会が非常に多いアセンブラはプログラムの危険度がCに比べて飛躍的に高いです。
また、今ではツールやライブラリが充実しているのでCに近い概念でいろいろな処理を出来ると思います(DirectXなど)が、原則的にはアセンブラはハードウェアと密接した言語なので、ひとつの処理をするための手続きが非常に複雑です。
アセンブラに興味がおありなら、直接MASMを使ってみるのもいいですし、
概念を勉強したいならZ80アセンブラや基本情報処理などで使用されているCASLなどをご覧になってみてはどうでしょう?Z80なら8ビット系のアセンブラなので、命令が単純で理解しやすいと思います。

たぬき

Re:Cとアセンブリ

#6

投稿記事 by たぬき » 17年前

ありがとうございます。
これを参考にしてアセンブラにちょっと手を出してみたいとおもいます。

閉鎖

“C言語何でも質問掲示板” へ戻る