C言語は関数ができな ..
[2ch|▼Menu]
91:デフォルトの名無しさん
08/07/11 16:48:10
>関数に分割すると全体の構造がわかりにくくなるから
>何のための構造化プログラムだかわからんしな

92:デフォルトの名無しさん
08/07/11 17:40:16
>>91
gotoとか関数を使うやつはアホ

93:デフォルトの名無しさん
08/07/11 18:55:48
>関数に分割すると全体の構造がわかりにくくなるから
>何のための構造化プログラムだかわからんしな

94:デフォルトの名無しさん
08/07/11 19:06:04
見通しが悪くなるんだよ
関数に逝ったり返ったりして可読性を妨げる
スパゲッティーは万死に値する

95:デフォルトの名無しさん
08/07/11 19:34:24
とりあえず94には手本になるソースを上げてもわわなければ

96:デフォルトの名無しさん
08/07/11 20:14:08
>関数に分割すると全体の構造がわかりにくくなるから
>何のための構造化プログラムだかわからんしな

97:デフォルトの名無しさん
08/07/11 20:37:15
関数を使うとダメなんだよ
繰り返し使うなら繰り返し構文の中で条件を指定して使うことだ
全体の中での位置を明確にして、流れを中断しないことが
質のよいプログラムを書く原則な

98:デフォルトの名無しさん
08/07/11 20:52:08
>>4-5
そんな便利な方法があったとは知らなかった
>>11
#includeはファイルをそのまま展開するだけだから
#includeはあっても別にいいよ

99:デフォルトの名無しさん
08/07/11 20:56:56
>>78
副作用っていうか、作用させるのがプログラムの仕事で、
戻り値が副作用だろ

100:デフォルトの名無しさん
08/07/11 21:16:08
>>61
printf()等を使うのがCだと思ったら、それは違う
それは標準関数の使い方を知っているにすぎない
C本来の使い方とは一切関係ないから

101:デフォルトの名無しさん
08/07/11 22:13:30
>>1
俺はVBAのメソッドの作り方は知らないが関数・プロシージャの作り方ぐらいは知ってる
「メソッドとか関数はできないがVBでプログラム作ってる」
は有りなんじゃない?
関数なんて糞だから使わないけどな

×→「関数はできないがC言語理解してる」
○→「C言語を理解たら関数なんて使いません」

102:デフォルトの名無しさん
08/07/11 22:20:47
もういい……もういいんだ。お前は良くやった。
他の誰が認めなくても俺が良くやったと認める。
だから、だからこれ以上無駄な涙を流させてくれるな……!
俺と一緒にコボルへ帰ろう。あそこは良いところだ。
gotoだってお前を待ってる。
そんな見当違いの主張をせずに済むんだ。さぁ、帰ろう。

103:デフォルトの名無しさん
08/07/11 22:45:43
どうしてもコボル使いにしたいようだな

104:デフォルトの名無しさん
08/07/12 00:04:11
>>99
式の結果を計算することが作用、それ以外が副作用。
慣習的にそう言い表すことが多いというだけのこと。

105:デフォルトの名無しさん
08/07/12 06:28:15
バカチンだな。
動作させることが主目的で、値は無い場合もあるんだから、
値が副作用だ。

106:デフォルトの名無しさん
08/07/12 07:49:17
>>84
純粋なC言語には関数は含まれず、
他の人が作った外部プログラムをリンクさせたいときにだけ
関数(すでに誰かがなんらかの言語で作った外部プログラム=別工場のライン)
を使いますが、関数の宣言と起動はリンクのための作法なので
C言語の言語仕様からは多少離れた話になってきます

サブルーチンにするというのは、一種の圧縮法にすぎず、
人間の頭で圧縮工程までやろうとするからコードが醜くなるわけです

1つの実行ファイルを生成しようとするときは、相当する関数main()1本で書くのが正解

107:デフォルトの名無しさん
08/07/12 08:43:31
>>96
関数では構造化されているとはいい難い
ブロックを使って書くべきだろう

108:デフォルトの名無しさん
08/07/13 00:23:44
>>1
hello worldぐらいは誰でもできるね
関数の使い方はただそこに関数を書くだけでいいんだ
>>1は関数の定義ができないんだと思う
それはむしろ幸いなことだね
>>1のレベルだと、普段使わないようなライブラリ関数の
呼び出しも苦労しそうだが
まあ、百歩譲って関数の呼び出しは容認してもいい
しかし、相当の理由がない限り関数を定義してはいけない

109:デフォルトの名無しさん
08/07/13 00:38:19
関数を使わないことのデメリットって何かあるかな
スコープの問題が思い浮かぶが、ブロックにすればいい
字下げして常に{}の対応を明確にすることで
関数より遥かに処理の流れがわかりやすくなる

110:デフォルトの名無しさん
08/07/13 08:33:33
C言語に限らず、どの言語でも関数はよくない
できる限りプリプロセッサへのマクロ定義とか
エディタのタグジャンプ機能などに頼りつつ
得ようとする実行コードに近い形でソースを出力させた後に
コンパイラを通すべき

オブジェクトを細かく分ければ再コンパイル時間の節約にはなるだろうが
たったそれだけのために保守性を犠牲にするのは馬鹿げている
関数は百害あって一利なしといえる

111:デフォルトの名無しさん
08/07/13 10:45:25
C言語の要はマクロ展開にあると思う
関数などがあるおかげで、関数に合わせてデータ型を気にしたりする必要が
増えて、不必要に言語学習を難しいものにしているし
型ごとに用意する関数には汎用性がなく煩雑になってしまう場合がある

マクロでできることを関数などにして、
いかにも関数がC言語を特徴づける書式だというのは
頭のおかしい人がいってることだ

112:デフォルトの名無しさん
08/07/13 12:06:06
関数ってリソースが限られていたころの苦肉の策だから
モバイルのセルフ開発でもない限り、近いうちに廃止されることだろう

113:デフォルトの名無しさん
08/07/13 18:53:15
コンパイラって、ソースコードをマクロ作業的にアセンブラに渡すコードに置き換える物だから
結局機械的な置換マクロ動作の繰り返しになる
機械翻訳的にCPUのネイティブコードに変換する
プログラムの基本は関数よりもマクロだというのは
プログラム作りを実行ファイル完成まで通してやったことの
ある人は感覚的にわかるだろう

114:デフォルトの名無しさん
08/07/14 10:59:55
>プログラムの基本は関数よりもマクロ

115:デフォルトの名無しさん
08/07/14 18:22:40
関数型言語は知らないのでコメントできない

C言語はただ手続きを書き並べただけの手続き型言語
関数というより手続きと戻値という感じだろ
利用価値ないよね

116:デフォルトの名無しさん
08/07/14 18:43:55
これはまた面白い気狂いが湧いてますね。

117:デフォルトの名無しさん
08/07/14 19:44:42
関数(笑)

118:デフォルトの名無しさん
08/07/15 19:08:18
1つの関数は1つのアプリケーション
関数は外部プログラムに等しい扱いとする
内部関数も関数は関数なので同じ
あまり小さな単位で関数を作らず、
関数は完全に別プログラムとして動作させられる単位に限るべき

複数の人間で1つのソフトを作る場合でも
ソースを持ちよって1つに合成(コピペ)するほうが、
関数を行ったり来たりしながらの手直しより断然効率的だろう

119:デフォルトの名無しさん
08/07/15 19:18:36
実例うp

120:デフォルトの名無しさん
08/07/16 11:31:37
Windowsのメモ帳でソース開いて編集しているビギナークラスの人は
ファイルが巨大化すると困るだろうから、遠慮せずに関数を使ってくれ

121:デフォルトの名無しさん
08/07/18 22:44:53
Cで関数使うなって言ってるやつは、アセンブリでサブルーチン使わなかったの?

122:デフォルトの名無しさん
08/07/19 14:49:48
アセンブリは速度が命
オーバーヘッドがあるサブルーチンなど極力使うのは愚の骨頂

123:デフォルトの名無しさん
08/07/19 14:57:58
>極力使うのは愚の骨頂
なるほど、関数を毛嫌いしている人は日本語も怪しいと。

124:デフォルトの名無しさん
08/07/21 00:42:15
再帰的に呼び出すのでもない限りサブルーチンにする必要ないだろ
マクロがあるのに

125:デフォルトの名無しさん
08/07/21 05:28:52
何故関数を毛嫌いするのやら。
マクロにするくらいなら、関数でいいじゃん。どうせ、コンパイラがインライン展開してくれるんだから。

126:デフォルトの名無しさん
08/07/28 22:33:37
そんな部分は当然のごとくマクロだろ
なんでわざわざ関数にするの

127:デフォルトの名無しさん
08/09/18 02:43:59
関数のほうが楽だから

128:デフォルトの名無しさん
08/12/27 23:44:42
いまさらだが>>1表面調和関数のような関数の事を言っていたんじゃまいか?

129:デフォルトの名無しさん
09/01/03 11:58:54
パソコン(引き値:キーボード、戻り値:ディスプレイ)は関数である。

130:デフォルトの名無しさん
09/01/03 12:31:33
つ標準入出力

131:デフォルトの名無しさん
09/01/03 15:46:07
1はそういうこといってねーよ
関数がわからなくてもC言語使えるか? だろ
理解可能だ

たいてい、センスのある初心者は
ifとforと配列まで覚えたらゲーム作ろうとする
main関数に数百行かく
センスないやつは、そもそも、関数まで覚えてもその規模のソースさえなかなかかけない

132:デフォルトの名無しさん
09/01/03 16:13:06
mainに数百行だけでまともなゲーム書けるか?
ウィンドウ処理だけでも百行近く必要なのに

133:デフォルトの名無しさん
09/01/03 16:28:10
標準ライブラリを必ず使わなければいけないなんてことはないが、
標準ライブラリを使う機会は少なくない。どんなものがあるかを知るのも重要だが、
どういう仕組みで、どう使うか、最低限のことは理解しておくべき。
第一、main関数を使っている時点で、既に理解していないと困るんだが。

134:デフォルトの名無しさん
09/01/20 12:53:50
>>132
オセロとかテトリスとか300ぐらいですんだ希ガス

135:デフォルトの名無しさん
09/01/28 01:58:41
>>133
全然困らない。mainしか使わないのだからmainの書き方だけ覚えればいい。

136:デフォルトの名無しさん
09/01/28 11:03:26
>mainしか使わない
こういう奴の存在が困る。

137:デフォルトの名無しさん
09/02/01 05:18:54
そんなやつは身近にいないから困らないw

138:デフォルトの名無しさん
09/04/19 20:40:19
は?

139:名無しさん@そうだ選挙に行こう
09/08/30 07:10:18
「関数ができない」とは、実行できないということか?

実行環境なしに紙だけで勉強するのは非常につらいが、
まあ不可能ではあるまい。

140:デフォルトの名無しさん
09/08/31 15:11:23
スレ勃てから5年にして初めての珍解釈登場

141:デフォルトの名無しさん
09/09/11 00:25:05
へ?

142:デフォルトの名無しさん
09/09/11 02:33:55
>>35
プロトタイプ宣言のない関数は暗黙にintを返すと見なされるので
intからvoid*へキャストできる環境ならfopenだって呼べるぞ。
↓のコードにgcc4.3.2は警告すら出さない。
(もちろんこんなスタイルをオススメする訳ではない)

main(){
void* FP = (void*)fopen("hoge", "w");
if(FP){
fputs("hoge", FP);
fclose(FP);
}
return 0;
}

143:デフォルトの名無しさん
09/09/11 16:15:35
アセンブラでサブルーチン使わなかったらメモリアクセスのオーバーヘッドでかすぎ
になるだろうが
実際に使えもしないバカがいい加減なことを語るな

144:デフォルトの名無しさん
09/09/11 16:56:04
いきなり何言い出してんのかと思った。
>>121-122 へのレスか。
つか、去年の話にレスするならアンカーくらい付けろ阿呆。

145:ぅゅ ◆e6.oHu1j.o
09/09/19 17:55:13
自作関数縛りのプログラミングとか楽しそう
define使っちゃうと面白くないからそれもなしで


146:デフォルトの名無しさん
09/09/22 06:46:45
俺なら入力も出力も無いプログラムが出来そうだ

147:デフォルトの名無しさん
09/09/22 16:41:51
非チューリングマシンか。

148:デフォルトの名無しさん
09/09/30 21:07:11
実は…

149:デフォルトの名無しさん
09/10/03 08:51:36
入学式のときから俺…

150:デフォルトの名無しさん
09/10/05 13:50:38
お前のことが…

151:デフォルトの名無しさん
09/10/06 21:17:18
ヤらせろ!

152:デフォルトの名無しさん
09/10/07 15:15:16
>>143
アセンブラではそんなに大きなプログラムは作らないから
問題ない。構造が明確であることが大切。
サブルーチンは使うな。

153:デフォルトの名無しさん
09/10/07 15:17:13
>>152
>サブルーチンは使うな。
となると
>構造が明確であることが大切。
構造も糞もないわけだが。
頭おかしいの?

154:デフォルトの名無しさん
09/10/07 16:42:10
はぁ?
あっちこっち飛ぶなって言ってるんだよ
1つの流れのなかにブロックでコピペしろって言ってるの

155:デフォルトの名無しさん
09/10/08 06:56:26
はぁ?

156:デフォルトの名無しさん
09/10/08 07:41:44
えっ?

157:デフォルトの名無しさん
09/10/08 10:18:15
>>154
もう書けば書くほどボロがでる状態。

158:デフォルトの名無しさん
09/10/15 16:28:59
サブルーチンは使うな
アンカーも使うな


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5400日前に更新/31 KB
担当:undef