• ベストアンサー

基本的なことを勉強したあとはどうすればよいのでしょうか。

基本的なことを勉強したあとはどうすればよいのでしょうか。 入門書などで、ポインタや構造体など一通りのことを勉強しましたが、使っている関数が <stdio.h>の標準関数だけでした。 この標準関数というものを調べてみましたが、どうやらあまり高機能でないというか Windowsで使えるようなアプリケーション開発を行うのは無理があるようです といっても、すぐにアプリケーションが作れるとは思っていないのですが このあとどういう勉強をしたらよいでしょうか。 最終的な目標としては、C言語を通してOSの仕組みやPCの基本的な構造を理解できればと思っています。

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

  • ベストアンサー
  • YoshiMu
  • ベストアンサー率41% (96/229)
回答No.2

基本的なことを理解したと思うなら、応用に進めばいいんじゃないでしょうかね。 実際、言語仕様を理解したつもりでも、処理系によっては挙動が変わってしまうことが少なくないのがC言語ですし。 そういえば、どの処理系で学習されたのでしょうか? (WindowsならVisual Studioシリーズは便利なのですが、癖が強いので学習に向くかといえば疑問があります。) 本当にC言語だけでWindowsアプリケーション開発をしてみたいと思うなら、以下のページの第2章程度までは理解しておいたほうが良いでしょう。 http://www.geocities.jp/ky_webid/win32c/index.html ただ、C言語だけでWindowsアプリケーションを作成しようとするのは、愚かな行為であると感じるんじゃないかなと思いますよ。主に生産性の点で。

lu-mu-
質問者

お礼

応用の方向性がよくわからなかったので質問しました。 やはりライブラリと言われるものを少しづつ勉強していくのがベストなんでしょうか。 サイト紹介ありがとうございます。

その他の回答 (5)

回答No.6

#1 ですの  標準関数を全部覚える必要はありませんが、基本的に身に付けておかなければ困るものもあります。  stdio.hの関数だけじゃ、標準入出力の関数とかファイルアクセスの関数とかぐらいしか知らないってことです。むしろGUIプログラミングなんかじゃ使わない標準入出力を覚えるぐらいなら、むしろメモリ関係とか文字列操作とかの知識が無いと、他の勉強をするにしても困りますよ……ということです。  例えば標準関数ではmallocという関数でメモリを獲得しますが、これそのものはWindowsのプログラミングでは使えませんが、Win32APIにあるGlobalAllocという関数の動作はmallocを知っていれば理解できます。ここからさらに他のOS環境のプログラミングに移った場合、GlobalAllocに直接相当する関数とかはないかもしれませんが、mallocの動作を模したような関数の存在する可能性は大きいでしょう。  これは何故かといえば、OSの開発環境の設計者もその使用者も標準関数mallocの知識が前提としてあれば機能が分かりやすくて良いという点があるからです。  また、標準入出力とかファイルアクセスの機能を使うぐらいならC言語のメモリアクセスの仕方が分からなくても大丈夫ですが、メモリ関係とか文字列操作の関数を使おうとすれば必然的にメモリアクセスに関する知識が必要になります。そうやって、PCとかOSの仕組みを身に付けていくのが近道です。  どういう入門書で学ばれたのかは知りませんが、たとえポインタとか構造体とかは個別にやったといっても、標準関数がstdio.hの範囲内だけでは基本の基本ぐらいにしかすぎません。  学び方はいろいろですから、もう少し高度な入門書を読むとか、いきなり応用編を始めるとか、自分でソフトを作りながら学んでいくとか、それはどんなやり方でも構いませんが、重点目標としては他の標準関数を視野に入れて必要に応じて使えるようになるというところが適当ではないでしょうか。

lu-mu-
質問者

お礼

基本の基本ですか(´;ω;`) 先は長そうですね もうランク上の参考書も買ってみたいと思います ありがとうございました

  • YoshiMu
  • ベストアンサー率41% (96/229)
回答No.5

#2です。 正直、OSの仕組みやPCの構造を理解するっていうのは最終的な目標としては変なんじゃないかと思いますよ。アプリケーションソフトをつくっていく流れの中で「ついで」程度に理解できるようになるものだと思います。(OSの仕組みを理解していなくてもアプリケーションソフト開発ができている同僚を見ると、必ずしもそうとは限らないのでしょうが。) 私がお知らせしたサイトはWindowsアプリケーションがWindowsからイベント通知を受けながら処理を行う様子を理解するのに良いかと思ったためです。これもまた、OSの仕組みの一部ですし。 C言語もOSも、PC自体も、「やりたいこと」を実現するための道具に過ぎません。 ライブラリの勉強そのものに入れ込まないで、アプリケーションをつくりはじめてはいかがですか? 他の方から提示いただいたような、OSをつくるというものでもいいでしょうし。 自分がつくっていて楽しいと思うものを見つけてください。 知識や道具は持っているだけでは、意味ないですよ。使ってこそ価値があるんです。

lu-mu-
質問者

お礼

そうですね。 OSかアプリか決めていませんが、何かつくってみます。 ありがとうございました。

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.4

>このあとどういう勉強をしたらよいでしょうか。 勉強ではなくて実践ですね。 とにかく、なにかプログラムを作ってみましょう。 つくってみることによって、「OSの仕組みやPCの基本的な構造」も見えてきます。 お題はなんでも構いません。どんなプログラムでも、OSの上で動くPCのプログラムですから。

lu-mu-
質問者

お礼

ありがとうございました。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

>最終的な目標としては、C言語を通してOSの仕組みやPCの基本的な構造を理解できればと思っています。 じゃあ、OSを作りましょう! 「30日でできる! OS自作入門」と言う本があります。 http://book.mycom.co.jp/book/4-8399-1984-4/4-8399-1984-4.shtml 基本的なOSの作り方を学べる本ですよ。 実用レベルで使うには問題があるOSですが、OSの何たるかが学べると思います。 C言語が分かれば大丈夫です。 標準関数を全て理解されていなくても問題ありません。 と言うより標準関数全部覚えるのは意味がありません。 こんな本もあります。 「作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践」 http://www.shuwasystem.co.jp/products/7980html/2254.html

lu-mu-
質問者

お礼

本の紹介ありがとうございます。 確かに自分でOSが作れれば一番理解が深まりそうですね。

回答No.1

標準関数は stdio.h にあるものだけではないので、その他の標準関数も勉強してください。 あとのことは、それからです。

lu-mu-
質問者

お礼

ありがとうございました。 標準関数はすべてマスターしたほうがいいですかね。

関連するQ&A

  • Cを一通りやった後・・何をすればいいか

    情報工学科を専攻しており、前学期にC言語の一通りの分野が終わりました。一通りといっても、全然だと思うのですが、ポインタ、構造体やリスト構造、ソート関係や、ファイルの入出力、分割コンパイル等、基本的なことろまではやりました。 (C言語書物(入門編)は仕上げたという感じです。) が、今後何をすればいいのか行き詰っています。 後期になり、Schemeを授業でやっているので、C言語に費やせる時間もなかなかなく、Cで最終的に何を作るかという目標も自分の中にまだないです。 とりあえずwindowsのアプリケーションでも作れたらな~とか思ったりはしています。一応その環境として、Visual C++ を買うことも考えに入っています。 みなさんが一通りC言語を学んだ後、その先どのように進んでいったのか、どういう目標があったかを、参考にさせていただければ幸いです。

  • 入門より少し進んだC言語の勉強方法

    初めまして。 現在、C言語の勉強をしています。 C言語入門用の本を2~3冊読み、実際に自分で書いてみて関数やポインタ、構造体などの初歩的な事は理解しました。 また、基本情報技術者試験をC言語で受験し、合格する事が出来ました。 しかし、基本情報技術者試験に出てくるプログラミングの問題を読み、どのような動作をするのか追いかける事は出来ますが、似たようなレベルのプログラムを「自分で1から書けるか」と言われたら難しいと思います。 入門用の本を卒業し、次のステップに進みたいと思うのですが、どのように勉強すればいいのかよく分からず、止まってしまっている状態です。 ぜひ、今後におけるおすすめの勉強方法がありましたら教えてください。 宜しくお願いします。

  • C言語の勉強方

    基本情報の試験の言語がCで受験しなくてはいけないんですが、独学で0からのスタートなので難しくて参ってます。2週間かけて、基礎の部分を一通り勉強して、前半部分は理解できたんですが、後半の 構造体、ポインタ:なんとなく理解 ユーザ関数:理解不能 といった感じなので、応用問題とかになると全然分からなくて参ってます。 C言語の勉強の仕方や初心者でも分かりやすく理解できる参考書などは無いでしょうか??教えて下さい。 1週間シリーズがいいと聞いたんですが、あれはどうなんでしょうか??

  • 基本

    基本情報技術者を諸事情により2月1日から勉強を開始して4月に受けようと思うのですがそれでも平気でしょうか? 理系の大学なのでデータ通信はかじった程度、C言語はポインタまで一通り理解している程度です。 学生なので一応勉強は毎日出来るのですが。

  • C言語の勉強について

    C言語の勉強について わたしは、前からC言語に興味を持っており入門書を買って勉強しました。 基本的なことは理解できましたが、これからどうすればいいのかわからなくなってしまいました Cに興味を持つ前はHSPをしていたのですが、これはさすがにプログラムの基本さえわかっていれば ヘルプを開き自分で考えて、だいぶ本格的ななゲームも作れたのですが、Cは思ったとおりに行かなくて そもそも、コマンドプロンプトから実行するプログラムしかわからないのですが みなさんは、私くらいのころはどんなことをしていましたか? ひたすらプログラムを書いていましたか? それとwindowsアプリケーションの開発はもっと後になりますか? C言語ではどんなソフトを作ったりしたことがありますか?

  • プログラミングの勉強

    独学で言語をまなんでいるのですが、どこまでやれば一通りは学べたとして次の言語に進めるのでしょうか?文法はとうぜんとして、標準ライブラリ関数などはどこまでおぼえるものでしょうか?

  • 初級シスアドと基本情報技術者について・・・

    四月に情報系の国家試験を受けようと思います。 しかし、初級シスアドか基本情報技術者のどちらを受けようか悩んでいます。 基本情報技術者が受かるならば 迷わず基本情報技術者の試験を受けるつもりですが、勉強は最近始めたばかりで学校の試験も手を抜くことは出来ず実質3ヶ月半~4ヶ月程度の勉強期間しか取れません。(二月・三月に入れば春休みに入るので時間はたくさん時間取れます) C++言語については 学校で簡単に習いました。(構造体やポインタについて) ネットワークやシステムについての知識は 勉強し始める(1週間前)までは 皆無でした。 (1)基本情報技術者→ソフト開発技術者(→初級(上級)シスアド) (2)初級シスアド→基本情報技術者→ソフト開発技術者 目標は 再来年の春までに基本情報技術者とソフト開発技術者の資格を取ることです。 (1)と(2)のどちらがいいですか???

  • プログラミング勉強の上で目標に困っている

    高校生です。将来プログラミング関連の仕事に就きたくて、勉強を進めています。 とりあえず、c言語のポインタと構造体、c++のクラスの継承からテンプレートまで一通り勉強しました。 ここで次向かうべき目標を見失っています。 実践で通用する技術を養うために必要な知識は何なんでしょうか。 将来は企業に就職し、知識を蓄えたあと、フリーランサーになるのが夢なのですが... やりたい仕事は、やはりOS上で動くソフトウェアの開発です。ハードウェア知識が絡んだりする組み込み系はあまり興味がありません。 スマートフォンアプリの開発に一番興味があるんですが、開発環境を手に入れるために8400円/年かかると聞くので(iPhone)、もっと確かな開発技術を手にしてから手をつけたいと考えています。 オンラインゲームの開発に携わるのにも興味があります。 業界にはあまり詳しくないので、是非経験者の方、お話を聞かせてください。 ちなみに、諸事情で情報系の大学には行くことは出来ないです。

  • C言語のお勧めの本

    現在、ソフトバンクの新C言語入門のビギナー・ スーパービギナーを読みながら勉強しています。 このあとシニアをやろうと思っていたのですが、 このシリーズは良いのでしょうか? 他にお勧めの本などありますか? ちょうど続きになるような感じがいいのですが。 C言語を一通り勉強してから、最終的な目標は『HDL』です。

  • C言語で計算機をつくりたい

    大学でC言語の基礎の基礎(入門書レベル)を終了したばかりのものです。 一通りの関数とポインタなどは扱えるようになったので、C言語で実際に使えるプログラムを作りたいのです。 最終的には自分でよく使う統計関係の処理(不偏分散)などを行いたいのですが、いきなりそこまではできないのでまずは電卓を作ろうと思い立ちました。 根本的な考え方(どういった関数を使うか、その流れなど)だけで結構ですので、アドバイスを下さい。 お勧めの本、URL等ございましたら教えていただければ幸いです。

専門家に質問してみよう