dポイントプレゼントキャンペーン実施中!

はじめまして、私はC言語を勉強中の初心者です。
基本的な構文などを理解して、標準ライブラリ関数を勉強して行こうと思ったのですが、うまく勉強できずに苦戦しています。そこで2つ聞きたいことがあります。

1.普通標準ライブラリ関数はどの程度覚えるものなのでしょうか?
徹底的に網羅するのか、一般的なところは押さえて後は適当にやるのか、などを知りたいです。

2.関数はどうやって勉強したらいいのでしょうか?
私は細かいところまで徹底的に覚えたいタイプで、今は、自分のコンパイラ(VC++ 2008)のincludeフォルダにあるヘッダファイルを調べ、関数のプロトタイプ宣言をしてあるところを見つけて関数名を洗い出し、その関数名で検索を掛けて関数を覚えていく、という方法を取っているのですが、これだと恐ろしく効率が悪いです。皆さんはどうやってライブラリ関数について勉強していったのでしょうか?

質問したいのは上記の2点です。回答よろしくお願いします。

A 回答 (5件)

>1.普通標準ライブラリ関数はどの程度覚えるものなのでしょうか?


>徹底的に網羅するのか、一般的なところは押さえて後は適当にやるの
>か、などを知りたいです。

第一に、
「使い方を完全に暗記する」必要はありません。
他の方も記載の通り、その場で調べれば良いので。

第二に、
「標準ライブラリ関数で提供されている機能」は頭で理解しておく(暗記ではない)必要があると考えます。ただし、ここで理解すべき標準ライブラリ関数の範囲は、各個人のキャリア目標に異なりますね。

業務の応用アプリ開発しかしない人であれば、文字列操作、メモリ操作、入出力操作等の基本部分だけでよいでしょう。
一方、フレームワーク開発、ミドルウェア開発や組込制御開発をする人の場合、また、インフラやアーキテクトが素養として学習する場合であれば、全てを網羅的に学習する必要があるでしょう。

ただ、プログラム言語以外の知識、OSやコンピュータの根幹動作の仕組みを知らないと理解が難しいところもあるので、今は全てを網羅しようとせず、のんびりやる方が良いです。

仕組みを知らないと理解が難しい例:
 「signal関数」と「ソフトウェア割込みの仕組み」

>2.関数はどうやって勉強したらいいのでしょうか?
「C言語の勉強」と視野を広げた場合、関数の勉強にこだわるのは良くないかもしれません。もしかすると、他人の作成したソースコードを読んで解読する方がC言語の勉強になるかも?

# 例えば、MSDNの技術情報にはサンプルコードが沢山。
# これは、関数の説明書読むよりも、他人の作成したソースコードを
# 読む方が分かりやすいからです。
    • good
    • 0
この回答へのお礼

>>理解すべき標準ライブラリ関数の範囲は、各個人のキャリア目標に異なりますね。

私はまだ具体的な目標を持つほど詳しくはないのですが、まだそんなに焦る必要もないのでじっくり覚えていこうと思います。他人のソースコードを読むのにも役立つでしょうしね。

>>OSやコンピュータの根幹動作の仕組みを知らないと理解が難しいところもある

今もなんだかよく分からない関数が出てきたりするのですが、そういうのは動作だけ覚えてあとで必要になった頃に詳しくやろうと思います。

>>MSDNの技術情報にはサンプルコードが沢山

これでサンプルコードには困りませんね!コード読めるようになるためにも関数しっかり覚えなくては。

回答ありがとうございました!

お礼日時:2009/07/26 11:27

MSDN(Visual Studio2008)のC言語ライブラリ解説は、


http://msdn.microsoft.com/ja-jp/library/59ey50w6 …
にあります。

Microsoftでは、これをCRT(C Runtime Library)と呼んでいます。
    • good
    • 0
この回答へのお礼

CRTってそのことだったんですね。CRTってなんのことかと思っていました。
よく考えればmicrosoftが用意していないわけがないですね。
回答ありがとうございました!

お礼日時:2009/07/26 09:52

> 1.普通標準ライブラリ関数はどの程度覚えるものなのでしょうか?



C言語の標準ライブラリ程度であれば、すべて覚えても知れています。特に、(AMD1を含まない)C90の範囲であれば、一通り理解した方がよいかと思います。結果的に一生使わない関数があるかもしれませんが、考え方など、間接的に活かせることも少なくないからです。
それに、存在自体を知らなければ、使うべき機会があっても、その時点で調べてたどり着けるかどうかは何ともいえません。使えるようにしておいてから、必要かどうかを判断するのが基本です。

> 2.関数はどうやって勉強したらいいのでしょうか?

一番確実なのは、自分で標準ライブラリ関数を実装することです。
    • good
    • 0
この回答へのお礼

標準ライブラリはすべて覚えることにします。折角C言語やるからには詳しくなりたいですしね。

>>一番確実なのは、自分で標準ライブラリ関数を実装することです。

自分でですか!atoiとかなら私にもできる・・・はず。でもよく使う関数なら自分好みに変えたりもしています(用意されている物より良いアルゴリズムが組めているか自身がないですが)。自分で実装するのもいいですね。

回答ありがとうございました!

お礼日時:2009/07/26 09:47

関数名は覚えても引数の順番とか覚えてないのがいっぱいあります


私は使いたいときにネットで関数名を検索して確認しています
↓はヘッダ別、アルファベット順で説明があります
http://www.bohyoh.com/CandCPP/C/Library/hindex.h …
    • good
    • 0
この回答へのお礼

マイナーなのは引数とかまで覚えてなくてもいいんですね。
>>ヘッダ別、アルファベット順で説明があります
そのサイトヘッダファイル順バージョンもあったんですか!
回答ありがとうございました。

お礼日時:2009/07/25 12:49

頻繁に使う関数については覚えておく(と言うか頻繁に使うと自然と覚える)


その他の大多数は必要になったら探す。
VC++ならMSDNから探せば良いし[F1]キー押せばMSDNが立ち上がりますから、詳しいリファレンスなんて一々思えておく必要は無いです。

標準関数などは手段なので、ざっと「どんな事が出来るか」だけ覚えておけばよくて具体的は使い方は必要になった時に調べればよいです。
全部調べたって、多分、一生使わない関数の方が多いですよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

>>全部調べたって、多分、一生使わない関数の方が多いですよ。
徹底的にやってもあまり意味がないんですね。

>>MSDNから探せば良い
C++のライブラリ関数の一覧などC++の情報は見つかるのですが、肝心のC言語の情報が見つからずヘッダファイルで探すことに・・・MSDNからC言語のライブラリ関数の情報を得るにはどうしたらいいのでしょうか?

お礼日時:2009/07/25 05:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!