[過去ログ] 最長不倒関数■C言語でmain関数に全コードを入れる (13レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(1): デフォルトの名無しさん [sage] 2022/05/26(木) 23:18:11.95 ID:2dmITGtW(1) AAS
第10章 最長不倒関数
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.10.3.html
連載の第1回に「関数の長さ」の目安について書きましたが、
やはり画面に 収まる、あるいはプリンタ用紙1枚に収まる程度の
60行以内にしたいものです。 まあ、せめて100行以内になるよう
努力してもらいたいものです。それが、 2500行近くもあるのでは、もう「絶句」しかありません。

長すぎる関数は絶対に「分割」しましょう。分割し、独立した「関数」に
し てしまえば、デバッグのとき、より短くなった関数の中だけを注目すればすむ ようになるはずです。

こんな長い関数を書いてきたら、内容など調べる必要は一切ありません。
「長い!読めん!」といって、書き直させる以外に手はありません。
こんな長 い関数のデバッグは、ライフワークになりかねません。

最長不倒関数の例
https://github.com/ShellShoccar-jpn/misc-tools/tree/master/C_SRC
2: デフォルトの名無しさん [sage] 2022/05/26(木) 23:33:38.12 ID:/wvaCk+2(1) AAS
人生に必要な3つの力とは
おっぱいとちくびとおまんこである
3: デフォルトの名無しさん [] 2022/05/27(金) 11:19:24.54 ID:S0cy91Tb(1/3) AAS
プロトタイプ書いて前方参照しない派と
main以外は全部後方に書いておいてプロトタイプ書かない派があるな
4: デフォルトの名無しさん [] 2022/05/27(金) 11:19:24.92 ID:S0cy91Tb(2/3) AAS
プロトタイプ書いて前方参照しない派と
main以外は全部後方に書いておいてプロトタイプ書かない派があるな
5: デフォルトの名無しさん [] 2022/05/27(金) 11:19:25.84 ID:S0cy91Tb(3/3) AAS
プロトタイプ書いて前方参照しない派と
main以外は全部後方に書いておいてプロトタイプ書かない派があるな
6
(1): デフォルトの名無しさん [sage] 2022/05/27(金) 11:31:06.98 ID:HNJHF6TR(1) AAS
アホみたいに長いswitch文を書いた時は
相対ジャンプが届きませんみたいなエラー吐かれて笑ったわw
7: デフォルトの名無しさん [sage] 2022/05/27(金) 12:41:18.93 ID:tzFUQxnX(1) AAS
main関数じゃないけど、
初めてやった仕事で1関数で2000行こえるのがあったのを思い出してしまった
8: デフォルトの名無しさん [] 2022/05/28(土) 11:45:06.57 ID:81XaDMLN(1) AAS
>>6
30年くらい前?
9: デフォルトの名無しさん [] 2022/05/28(土) 17:28:46.63 ID:DrsyU/Zk(1) AAS
ANSI C では switch 文の case ラベル数に上限が設けられており、その数は 257 であった。
10: デフォルトの名無しさん [] 2022/05/29(日) 14:17:01.83 ID:08b+BMRw(1) AAS
>>1
案の定POSIX原理主義者のスパゲッティコードだった
11: デフォルトの名無しさん [sage] 2022/05/29(日) 14:23:23.86 ID:MNYu/GXn(1) AAS
C言語の基礎からやり直したほうがよい

https://github.com/ShellShoccar-jpn/misc-tools/blob/master/C_SRC/herewego.c

/*####################################################################
# Main
####################################################################*/

/*=== Initialization ===============================================*/
int main(int argc, char *argv[]) {

(main関数の中がインデントされていない)

/*--- Variables ----------------------------------------------------*/
int i; /* all-purpose int */
int64_t i8; /* all-purpose int64_t */

(長いmain関数)

/*=== Finish normally ==============================================*/
return 0;}

(↑main関数の終了)
12: デフォルトの名無しさん [sage] 2022/05/29(日) 14:25:28.91 ID:F5UifZ6e(1) AAS
コメント長すぎ
13: デフォルトの名無しさん [] 2022/05/31(火) 10:44:10.27 ID:aYJaA5wp(1) AAS
ゴミを貼るな
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s