関数について

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

関数について

#1

投稿記事 by きよてる » 17年前

はじめまして。質問させてください。
大学でC言語を習っているのですが、
ただ漠然と教えられた事(structとかforとか)を教えられたとおりに使って、
課題を解いていただけでした。
ところが、この前、「関数とその役割について実例を用いて説明せよ」という問に
つまずいてしまいました。
習った事は使えても、意味をあまり理解していなかったのです。
僕は「main関数の行数を減らす役割」
と答えたのですが、全くもって見当違いですよね。
教えてください。

バグ

Re:関数について

#2

投稿記事 by バグ » 17年前

物凄く極論ではありますが、ある意味正しい解釈かもしれません(;^_^A

私が個人的に考える関数の存在意義というか、関数化の利点は…

1:同じコーディングを繰り返さなくてもよい。

2:エラーや変更があった場合に、その関数の中身だけを直せばよい。

などがありますね。ようするに、プログラムをする人が分かりやすくなるというのが、関数化の最大の目的ではないかと思っています。

Justy

Re:関数について

#3

投稿記事 by Justy » 17年前

 加えて捕捉するなら関数を使うことで

3: 複雑さの軽減
 使う側は内部で何をしているか気にしなくても良く、ただ何を渡すと何が戻ってきて何をしてくれるのかだけ知っていればいい。

4: 処理内容を明確にできる
 一連の処理に名前がついていると判りやすいし、(適切な名前が付いていれば)目的を明確にできるのでコードが読みやすくなる。

 ということが期待できます。

box

Re:関数について

#4

投稿記事 by box » 17年前

大規模なソフトウェアを開発する場合、一人ですべてを開発するよりも
複数人のチームで開発する方がコストや時間の点で有利になることがあります。

そういう場合、ソフトウェア全体で満たすべき機能を適切に関数分割しておくと、
・関数aとbの作成と単体テストは、鈴木さんに任せる
・関数cとdとeの作成と単体テストは、小林さんに任せる
・関数fとgの作成と単体テストは、田中さんに任せる
・全体の管理は、自分が行なう
という具合に、仕事の分割ができます。

他の人が担当する関数を使うときは、その中身のロジックを知らなくても、
Justyさんが書かれたように「何を渡せば何が返ってくるかを知っていさえすればよい」
ことになります。

きよてる

Re:関数について

#5

投稿記事 by きよてる » 17年前

なるほど、関数を使うとそのような利点があるのですね。
皆さんありがとうございます。
何となくですが、理解できました。

管理人

Re:関数について

#6

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

実例はいいのでしょうか?

どんなものかを教えてもらうより、自分で色々関数作って実行してみたほうが
よい文章が書けると思いますよ。

入門のサイトは沢山ありますから、その辺をながめて、自分で色々作ってみてください。

閉鎖

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