基本的なことを勉強したあとはどうすればよいのでしょうか。
入門書などで、ポインタや構造体など一通りのことを勉強しましたが、使っている関数が
<stdio.h>の標準関数だけでした。
この標準関数というものを調べてみましたが、どうやらあまり高機能でないというか
Windowsで使えるようなアプリケーション開発を行うのは無理があるようです
といっても、すぐにアプリケーションが作れるとは思っていないのですが
このあとどういう勉強をしたらよいでしょうか。
最終的な目標としては、C言語を通してOSの仕組みやPCの基本的な構造を理解できればと思っています。
No.2ベストアンサー
- 回答日時:
基本的なことを理解したと思うなら、応用に進めばいいんじゃないでしょうかね。
実際、言語仕様を理解したつもりでも、処理系によっては挙動が変わってしまうことが少なくないのがC言語ですし。
そういえば、どの処理系で学習されたのでしょうか?
(WindowsならVisual Studioシリーズは便利なのですが、癖が強いので学習に向くかといえば疑問があります。)
本当にC言語だけでWindowsアプリケーション開発をしてみたいと思うなら、以下のページの第2章程度までは理解しておいたほうが良いでしょう。
http://www.geocities.jp/ky_webid/win32c/index.html
ただ、C言語だけでWindowsアプリケーションを作成しようとするのは、愚かな行為であると感じるんじゃないかなと思いますよ。主に生産性の点で。
応用の方向性がよくわからなかったので質問しました。
やはりライブラリと言われるものを少しづつ勉強していくのがベストなんでしょうか。
サイト紹介ありがとうございます。
No.6
- 回答日時:
#1 ですの
標準関数を全部覚える必要はありませんが、基本的に身に付けておかなければ困るものもあります。
stdio.hの関数だけじゃ、標準入出力の関数とかファイルアクセスの関数とかぐらいしか知らないってことです。むしろGUIプログラミングなんかじゃ使わない標準入出力を覚えるぐらいなら、むしろメモリ関係とか文字列操作とかの知識が無いと、他の勉強をするにしても困りますよ……ということです。
例えば標準関数ではmallocという関数でメモリを獲得しますが、これそのものはWindowsのプログラミングでは使えませんが、Win32APIにあるGlobalAllocという関数の動作はmallocを知っていれば理解できます。ここからさらに他のOS環境のプログラミングに移った場合、GlobalAllocに直接相当する関数とかはないかもしれませんが、mallocの動作を模したような関数の存在する可能性は大きいでしょう。
これは何故かといえば、OSの開発環境の設計者もその使用者も標準関数mallocの知識が前提としてあれば機能が分かりやすくて良いという点があるからです。
また、標準入出力とかファイルアクセスの機能を使うぐらいならC言語のメモリアクセスの仕方が分からなくても大丈夫ですが、メモリ関係とか文字列操作の関数を使おうとすれば必然的にメモリアクセスに関する知識が必要になります。そうやって、PCとかOSの仕組みを身に付けていくのが近道です。
どういう入門書で学ばれたのかは知りませんが、たとえポインタとか構造体とかは個別にやったといっても、標準関数がstdio.hの範囲内だけでは基本の基本ぐらいにしかすぎません。
学び方はいろいろですから、もう少し高度な入門書を読むとか、いきなり応用編を始めるとか、自分でソフトを作りながら学んでいくとか、それはどんなやり方でも構いませんが、重点目標としては他の標準関数を視野に入れて必要に応じて使えるようになるというところが適当ではないでしょうか。
No.5
- 回答日時:
#2です。
正直、OSの仕組みやPCの構造を理解するっていうのは最終的な目標としては変なんじゃないかと思いますよ。アプリケーションソフトをつくっていく流れの中で「ついで」程度に理解できるようになるものだと思います。(OSの仕組みを理解していなくてもアプリケーションソフト開発ができている同僚を見ると、必ずしもそうとは限らないのでしょうが。)
私がお知らせしたサイトはWindowsアプリケーションがWindowsからイベント通知を受けながら処理を行う様子を理解するのに良いかと思ったためです。これもまた、OSの仕組みの一部ですし。
C言語もOSも、PC自体も、「やりたいこと」を実現するための道具に過ぎません。
ライブラリの勉強そのものに入れ込まないで、アプリケーションをつくりはじめてはいかがですか?
他の方から提示いただいたような、OSをつくるというものでもいいでしょうし。
自分がつくっていて楽しいと思うものを見つけてください。
知識や道具は持っているだけでは、意味ないですよ。使ってこそ価値があるんです。
No.3
- 回答日時:
>最終的な目標としては、C言語を通してOSの仕組みやPCの基本的な構造を理解できればと思っています。
じゃあ、OSを作りましょう!
「30日でできる! OS自作入門」と言う本があります。
http://book.mycom.co.jp/book/4-8399-1984-4/4-839 …
基本的なOSの作り方を学べる本ですよ。
実用レベルで使うには問題があるOSですが、OSの何たるかが学べると思います。
C言語が分かれば大丈夫です。
標準関数を全て理解されていなくても問題ありません。
と言うより標準関数全部覚えるのは意味がありません。
こんな本もあります。
「作りながら学ぶOSカーネル―保護モードプログラミングの基本と実践」
http://www.shuwasystem.co.jp/products/7980html/2 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
パソコン
-
Windows Formアプリからコンソ...
-
c言語でイベントフラグを使った...
-
10進数からN進数に変換するプロ...
-
C#,vb.netで業務用アプリ開発と...
-
ストリームについて。
-
プログラマーです。このDB設計...
-
0 == False はいいけど
-
インクリメント演算子のみを用...
-
ArduinoでMouse関数を使用して...
-
C言語 列挙型(enum型)変数について
-
パイソン。If elseの挙動につい...
-
擬似コード 長さがmの配列でな...
-
あんまり考えたくないけど
-
CPUが16bitでも32bitOSでコンパ...
-
double型が正常に認識されてい...
-
c言語
-
いまc言語の標準ライブラリ文字...
-
C言語 1から20までの逆数の和を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どうして+3
-
プログラミング言語についてc++...
-
今ってプログラミング言語は何...
-
2つほどお聞きしたいことがあり...
-
次の記述について
-
パソコン
-
バッチファイルで以下のような...
-
大量のデータを読み込んで表示...
-
c言語
-
Windows Formアプリからコンソ...
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
UART通信の取説で,left floati...
-
C#でTreeViewのCheckBoxのサイ...
-
10進数からN進数に変換するプロ...
-
Python、プログラミングについ...
-
[C言語]fputsとfprintfの違い
-
0 == False はいいけど
-
VisualStudioで、コードを印刷...
-
逆コンパイルと逆アセンブルの...
おすすめ情報