コメント研究すれ。
■ このスレッドは過去ログ倉庫に格納されています
C言語でコメントを書く時とても迷うよな? ・見易さ ・書き易さ ・分かり易さ ・一貫性(統一性) ・とどけこの思い とか、何でもいいからいい感じのコメントの書き方を考えませう。 // _,,....,,_ _人人人人人人人人人人人人人人人_ //-''":::::::::::::`''> ゆっくりしていってね!!! < //ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ // |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ __ _____ ______ // |::::ノ ヽ、ヽr-r'"´ (.__ ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、 //_,.!イ_ _,.ヘーァ'二ハ二ヽ、へ,_7 'r ´ ヽ、ン、 //::::::rー''7コ-‐'"´ ; ', `ヽ/`7 ,'==─- -─==', i //r-'ァ'"´/ /! ハ ハ ! iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i | //!イ´ ,' | /__,.!/ V 、!__ハ ,' ,ゝ レリイi (ヒ_] ヒ_ン ).| .|、i .|| //`! !/レi' (ヒ_] ヒ_ン レ'i ノ !Y!"" ,___, "" 「 !ノ i | //,' ノ !'" ,___, "' i .レ' L.',. ヽ _ン L」 ノ| .| // ( ,ハ ヽ _ン 人! | ||ヽ、 ,イ| ||イ| / //,.ヘ,)、 )>,、 _____, ,.イ ハ レ ル` ー--─ ´ルレ レ´ バグ直してもついでにコメントを直す奴はいないだろwww コメントはほとんどウソです 書いちゃいけません そういえば本屋でネーミングについての本が売ってた。 ネーミングの掟と極意 http://www.amazon.co.jp/o/ASIN/4798114332/503-8563893-6507141?SubscriptionId=1CVA98NEF1G753PFESR2 わざわざ本を買うほどのことでもないとは思うけど、俺みたいに年中違う会社に行っている下請け屋からすると 変数名、コメントのつけ方に規定がない会社で、コメントや変数名にレビュー指摘を受けると殺意を覚えるな。 例えば @ /* bErrorFlgがtrueならば */ A /* 例外フラグが立っているならば */ B /* 例外ならばaをbに変更する処理 */ C /* bErrorFlgがtrueならば中に入る */ if (true == bErrorFlg) {a = b;} たったこれだけの処理でも会社ごとに@ABC+αパターンの書き方がある。 自分的にはBが好きで処理概要をif文の前にずらずらと書いてしまうほうが好き。 あと、漏れはJavaの業務経験はそれほどないのだが、 get, setの名前のつけ方って何がいいのかわかんない。 例えば同期データの送信を行う処理があって、送信結果が返ってくるとしたら、メソッド名はどうつける? 今のプロジェクトでは以下だが、 /* データ送信結果を取得する */ getSendResult() getResult() 漏れ的には送信するのがメインの処理で、戻り値はおまけなのだからメソッド名は /* XXXを送信する処理 */ sendXXXMessage() sendXXXData() とかにしたいわけなのさ。誰か教えてエロい人。 前者は結果をとるだけで、後者は送信も実行するんだからメソッドの内容がちがうんじゃないの? 前者は非同期かなんかで送信は別に呼び出して、その結果を知るために使うものなんじゃ。 わざわざ true と比較なんてしなくても・・・。 そもそも、エラーなら a を b に変えるということくらいは一目で分かるから その例だとあまりコメントを書く必要性を感じないな。 書くにしても、a を b に変えることに何らかの意味があるなら、 その意味を書いた方がいい。 学生時代はmanの文書を手本にしろといわれたな 関数中の変数名やら処理の意味が見て分からないような関数は とっととリファクタリングしちまえや、と。 単なる和訳が最低だよね。 int i; /* i を初期化しています */ i=0; /* i に 0 を入れています */ 単に同じプログラムをプログラミング言語と日本語で二重に書いているだけ >>13 自分の為の覚え書きなんだろうね そういうの引き継いで、かつ内容が間違ってたりするともうぬるぽ >>10 私もそう思います。 しかし、今の会社ではどうやら「戻り値」に着目してメソッド名を決めているようだ。 (規約なんかは勿論無い!) >>11 うっかりtrueと比較する癖が抜けてないなぁ・・・ ちなみにtrueと比較しているのは規約です。 製造業のCプログラム辺りだと 以下の記載が許されない会社の方が多いと思う。 if(bErrorFlg) or if(!bErrorFlg) boolがintになっても対応可能だからとかいう理由だったような。 if (ERR_STATE_1 == bErrorFlg) >>13 そういう規約がある会社もあるぞ。 必ず一行につき一行コメントを書けって言う会社。 そういう場合には仕方なく書いた覚えがある。 >>8 いまだに、if() 文中で定数を左に書いてる奴がいるんだ... そっちにびっくりだよ。 >>13 > int i; /* i を初期化しています */ 初期化してないし。(w >>16 だったらtrueと比較するのではなくfalse (0)と比較するほうがいい。 >>18 以下の代入ができてしまうコンパイラや設定が可能らしい。(普通はエラーかワーニングがでるけどね。) if (bErrorFlg = true) {} 左に書いてあると、確実にエラーになる。 if (true = bErrorFlg) {} 製造業だと今でも普通に使われる規約の一つだぞ。 >>16 > boolがintになっても対応可能だからとかいう理由だったような。 理由になってないと思うが・・・。 多分、そういう規約作ってる奴もよく分かってないんだと思うぜ。 >>21 そういうこと分かった上で言ってるんだと思うが。 true と比較しても危険性が増えるだけであまり意味が無い。 どうしてもというなら != false になるが、 これも二重否定で可読性に難があると思う。 bool から int に変えて、新しくフラグを追加した時にも、 true との比較ならそのままのコードで通るってことじゃないかな。 そのままのコードで放置することがいいことかどうかは知らんが、 フェイルセーフということならありかもしれない。 むかし「偽以外は全て真の可能性があると心得よ」 とか教わった 装飾が多いコメントは見づらい //////////// //むほむほ// //////////// /*********** うはうは ************/ >>24 if (hoge() == true) ・・・ みたいなソースなのに、hoge()が、bool値を返してなかったら、カオス過ぎるだろ。 変更はするが、変更洩れがあっても動く、ってことだな。 bool値のリテラルと比較してるソースってすごい素人くさいよな。 世間で評価されている書籍とか、プロダクツのソースとかで、それをやってるのはすごい少数派。 「コメントに関する無意味な話」になってないだけマ板よりマシ そういう向きにはマ板のスレが適切 間はない /* test code */ 条件コンパイル使えって話もw 規約があればそれに従う。 そうでなければ関数と引数と戻り値の説明を書く。 cだとdoxygenizeのjavadocスタイル javaだとry >>36 精子を出す関数 チソチソをマムコに突っ込む 戻り値-精子 精子を出す関数がマムコに突っ込むのか? 戻り値が精子なら、セクースの実装は分離すべきだろ 副作用についての記述が分離できなくなるし、絡み合い過ぎて再入可能性が損なわれそうだ 再入可能じゃない精子を出す関数なんて大問題だろ 年賀状の配達は無事すんだかどうかわかりますでしょうか。 自分は、DoxygenでJavadoc風の書式を使ってます。 Qt風の書式は余り好きじゃないんで。 MFCのソースとか見ると、ほとんどコメントなんてついてないよな。 最先端のところでは、コメントを極力書かないのが、主流なの? Q. 自動保守#K9K?_D[L とは一体何なのか? A. 外部サイトへの突撃大好きな真性厨房 韓国突撃でお馴染みの自動保守 最近は自動焼人 ★として2ちゃんねるのボランティアにも精を出す日々 だがそんな彼にも、人間らしい部分はあったのだ… 名言集 『アパッチ砲はワシが作った』 『お前が規制系キャップ取れるか審査してやるよ』 『いつもサボってばかりのキャップがウゼえ』 『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』 『俺の経歴カックイイだろ?』 最近のニュース 8月15日の韓国突撃の際に歴史的大敗を喫する。ラジオでの敗戦宣言のときに声が震えていた 本人は体調不良と言っているが… ---------------------------------------------- この自動焼人 ★メールマガジンの配信停止をご希望される方は http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください >>44 > Kelly Leahy氏は、一目瞭然のわずかなコメントが散りばめられているようなコードが好みだ。 この訳はおかしいな。 「ごくわずかなコメントがところどころにある自己説明的なコード」が正解かと。 1行毎に 「/* */」使ってスペースで「*/」の位置合わせてるコメントとか個人的にかなりウザイんだが… メンテする時も行端合わせにゃならん気がしてスペース連打、でもメンドくなって 「//」 いや、フォントの問題を言ってるんじゃないと思うが・・ プロポーショナルフォントでカラムを揃える気になるか? つまりはそう言うことだ。 うひょおおおおおおお !!!! 明日から毎日休みだぜぇ〜!! */ ブロックコメントで/**/使って箱型にするのやめてくれよ、マジで ズレを直すためにスペースキーを連打することに恍惚を覚える 必要な処理はすべてプログラム自体にかかれている。 だから、プログラムコードを読んでも、すぐに分からないことをコメントにしてほしい。 例えば、関数の要約とか、そのように処理をしないといけない理由や意図などといったことだ。 それがプログラムの読者が疑問を持った箇所に書かれているならば、良いコメントだ。 まずコメントにして、それをコードに直していく。 だから、コードを全部書き終えるとコメントがなくなる。 仕事は別。 会話もできないやつらにコメントなんか出来るわけない /********************************************************/ /* こういう箱型ブロックコメント、いい加減やめませんか? */ /* タイプ量増えるしメンテめんどいの判りますよね? */ /* 後でメンテする人の身にもなってください。 */ /********************************************************/ /* おれは普通にこうしてるでゲソ 日本語つーか最後に\x5cがきてもおーけーゲソ \x5cでトラブルのは怖いでゲソ いまだにSJISで書いてるのは突っ込まないで欲しいでゲソ */ /* 120228 ageてしまったでゲソ コメントはなるべく日付入りで書いとくべきでゲソ 何を思って書いたのか3日経つと忘れてしまうでゲソ >>37 doxygen形式なんかはお勧めできないでゲソ 別ファイルじゃどうせ見ないしはっきりいって面倒なだけでゲソ 時間を無駄にしたなでゲソ */ Doxygen 形式を勧めない理由が判らん。 別ファイルじゃ見ないってのは判るが、ソース中に埋めているんだからいつでも見られるだろ。 どうせ見ないゴミのためにコメントが汚染されるのが嫌なんだよ #if 0 // 自分の中のベスト #elif 0 // だめだこりゃ #elif 0 // まあまあ #else // これが基本形 #endif javaにはできない芸当 とりあえずバージョンコントロールソフトちゃんと使え。 それで残るようなやつは実行時 if で書いとけばいいよ。 そうすればちゃんとコンパイルエラーも出るしな。 >>72 void func() { if (0) { // ここに書いておくと実行されない(最適化で消えるかも)がコンパイルは行なわれる。 SomeTestFunc(); } else if (0) { // こういう風に幾つも書けるのも、#if と変わらない。 SomeBetaFunc(); } else { // ここに書いてあるコードが最終版 SomeReleasedFunc(); } } コメントもコンパイルされるようにならないかな コメントメンテされずに実装と不一致してるプロジェクトとかもうこりごり 信じることできないコメントとかどうなん >>74 コンパイルしたいだけなら>73でいいが、要は不適切なコメントを排除したいのだろ。 引き数の説明の不一致なんかはある程度はDoxygenで管理していれば警告してはくれるけど、 その先は人力でやるしかないだろ。つーか、コードレビューもしないのけ? if (status) { // 接続完了? } if文のコメントに「?」付けるな、断定的なコメントにしろ { }内の実行条件がどっちなのか一瞬不安になるだろ 俺が今までに見た最強のコメント。 a=1; //aに1を代入 >>77 そういうのはコメント書け書けとうるさい奴に対する嫌がらせでわざとやってるんだろう もしそうじゃなかったら、そいつは即刻クビ/留年にすべきだ >>76 if文で判定していることそのものを指すときには疑問文にすることはしばしば。例えば、 -- if (fp == NULL) { // ファイルは開けなかった? -- こんな感じ。 >76の例は変数名が不適切だからそれを補う意味ではありではないかな。 >>76 怒るとこ違うんじゃないの? 俺だったらif (status)とかいう意味不明な変数名じゃなくてif (connected)とかにしろと言うな。 >>76 どう考えても{}内は接続完了のときの処理だろ。 {}内が接続完了出来なかったときの処理なら怒る。 >{}内が接続完了出来なかったときの処理なら怒る 実際あるから困るw 何かエラーが発生したら0以外のエラーコード返すようなの /**//************** コメント内容 *******************/ 関数宣言 最近はこんな感じの書き方してる。 最後のスラッシュ削れば後ろに書いた関数がまとめてコメントアウト出来る >/**//************** 半端な所にある // も含むの? /**//************* ******************/←これを外すと func(){ } ↓ここまでコメントアウトして止まる /**//************* /****************** コメント内容 ******************* 関数1 /****************** コメント内容 *******************/ ← 結局ここで止まるから//無くても同じじゃね? 関数2 コメントが真であるためには、コメントに責任を持たせればよい。 http://nojiriko.asia/prolog/prolog_55.html の中に現れる、資料/2という述語定義とそれを呼び出す副目標は 意味的にコメントである。 こうして置けば、コメントが書き換わっただけだと、プログラムの実行が 偽になってしまう。 適度に遊びを入れて______s----------z______みたいな区切りって使えないかな やっぱ怒られる? コメントには処理の目的を書いて欲しい // 高さを取得する じゃなくて // カーソルの有効判定をするために高さを取得する ってな感じ >>93 それ、「カーソルの有効判定をする」メソッドにして、「高さを取得する」のコメント無しの方がいいよ。 // おまじない // メイン関数 // 変数定義 // for ループ // 代入 // プリント関数 // ゼロをリターン >>79 if文が条件判断なのは明らかだからコメントを疑問形にする意味がないと思う >>99 if(isXXX()) {} //比較命令です。isXXX関数を呼び出して値が真であるかチェックしています。 みたいなのはいらんよ。 コードに書いてあることなんだから。 このスレッドは100を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。 上から読んでも下から読んでも全く同じ回文プログラム main(){printf("死ねハゲ");}//};)"ゲハね死"(tnirp{)(niam >>105 おお、任意のプログラムを回文プログラムにするアルゴリズム! ドキシジェンだっけ? コメントで判定して自動でドキュメント作ってくれる奴 アレの書き方を習得してみたいが資料がよく分からん >>108 取り敢えず、Doxygenスレに行ってみてはどうだろう。 Prologだとコメントに引数を与えると述語になる。 引数を与えるとではなくて、末尾にピリオドを付加すれば、だ。 全角文字の扱いからSWI-Prologでは「、」「。」など、ひらがな、カタカナの 記号を含む場合は、全体をシングルクォートで囲む必要がある。 IF/Prologではその必要はない。それから本当に頭の % を削るかどうかを思案する。 コメントがどこに対してかかっているのかを明確にするために、 //コメント if(){ } ではなく、 if() { //コメント } と書くようにした。 前者だと、コメントアウトがごちゃごちゃしてるコードを修正するときなんかに、 if節の前の部分の処理や宣言に対するコメントなのか、if節の処理に対するコメントなのかわかりづらい。 関数宣言も void foo() //コメント { } って書くようにしてる。 インデントをIDEがサポートしてくれないからめんどくさいけど、グローバル変数やexternや、関数外の注釈とかと まぎらわしくなくなる。 >>118 んな独自手法編み出さして使わなくても、コメントは対象の前、コメントの前とコメント対象の後に 空行を置くようにすれば自然で十分。 関数宣言のあとにコメントってのはなんか落ち着かないなぁ >>118 全コード1から自分で書くんならそれでいいんだろうけどな。 ブロック開始で一行開けるのがなんとなく気持ち悪いし、 関数のブロック前に何か書くのはK&R時代みたいでもっと気持ち悪い。 こんなん好みの問題だけどなんてーかなぁ… コメントを書かないことで解決 コードがすべてを説明してくれるさ( ・`ω・´)キリッ // そして我々はこの世界から旅立つことを決めたのだ >>120 func1();//ここでは△□している func2();//ここでは○×している こういう場合だけ後付けありだと思う。 未来の自分へのメッセージはちょっとめんどくさいけど 過去の自分からのメッセージはちょっと嬉しい 記憶力が足りない人のささやかな楽しみそれがコメント /*****************************************************/ /* コメントを箱型にするのマジでやめてぇ */ /* 一体何の利点があるのさ */ /* 誰か教えろください */ /*****************************************************/ ヲタの自己満足でっす こんなコメント見た事ある //初 期 化 処 理 2chかよ >>128 他人を枠に嵌めることに生き甲斐を見出したがる人に、喜ばれます。 >>128 それ区切り見たいでかわいいからやってたんだけど何でダメなの? コメントとは忘却という自然の摂理に対するささやかな抵抗である ただし、そのコメントが現時点でも適切であるとは限らないが・・・ >>131 /*****************************************************/ /* こんな風には左寄せなら別にいいのよ。 */ /* 若干煩いけど保守するの問題ないし。 */ /*****************************************************/ /*****************************************************/ /* それをこんな風に箱型にするなって話。 */ /* コメントを書き換えるときにいちいち空白の調整するコストがバカらしい。 */ /*****************************************************/ /* *-------------------------------------------------------- * こんな風に、一行ずつ閉じない方法もあり。 *-------------------------------------------------------- */ /******************************************************** * こんな風に、囲う方法もあり。 ********************************************************/ というか、 /* */ これで十分。javadoc形式のときは /** * */ を使うが。 >>130 ,133 まず間違いなく個人の不文律なので、同じソースを一人でずーっと保守し続けるという前提が 置けない限り統一が困難。がんばって統一してもルールを決めた本人以外全員が「俺のと違う」 という小さなストレスを感じ続けることになる。元の担当者が居なくなったりするともう誰もうれしくない。 右を閉じるとさらにウザさが際立つ件は >133 の言うとおり。 >>128 これエディタのマクロで箱型枠管理とかしてたんかね? 手作業で管理しつづけてたなら、ある意味尊敬する。 昔は手作業で管理するなんて本質的じゃないところに無駄に手間を掛ける奇習もあったからねぇ。 酷いプロジェクトだと、修正履歴にコメント修正なんて書いてあって該当の修正履歴No.見ると箱型の修正だったり。 >>137 「ソースの桁揃え」コミットよりも酷いけど「コメントを箱型に修正」コミットとかやられるよりはマシ。 >>128 箱型コメがかっこよく見える人がいるらしい。 俺はまだその境地に達していないようだ。 かっこいいというか「見やすい」んだよ 原稿用紙が「見やすい」とされるのと同じ程度の理屈 そういうふうになっていないコメントは「未完成のまま放置されている」のだから、「完成させる」は立派な修正 理屈はきちんと聞いて拾いあげてあげないといかん だから君の業務プログラマーとしての技術はいつまでたっても >>140 囲みが無いとコメントが見づらいソースって、あれだろ、どんな処理にも一行ごとに ぺたぺたコメントが入ってて、さらにひどいときにはそれが全部空行で区切られてるやつ。 説明用のサンプルソースからコピペしてきました、みたいな。 健全なソースなら適切な構造化が前提だし、コメントも前に空行一個置く程度で十分目立つ。 「(うわー右揃えるのかったりー・・・。)」 「(・・・誰も見てない、右の */ 消すなら今のうち!!) 」 >>140 >理屈はきちんと聞いて拾いあげてあげないといかん 「俺の考え方と違う!きめえ!俺のほうが正しい!」って一人でブツブツ言って延々再修正してるだけだからな コミュ障かよ フォントが等幅じゃない場合があるしなー。 一応フォントが等幅を謳っていたとしても、強調表示とかでズレるエディタもあるし。 コメントはソースの意味を少しだけ忘れた頃に書くのがよい。なにやってんだこいつという第三者の視点で書ける。 そうやっていくうちに第三者の視点(客観性)が身につく 略 "<th valign=\"top\">sendmailのパス</th><td><strong>[ NG ]</strong>たぶん <input value=\"${sendmails[$cnt]}\" /> です。たぶんね。たぶんだから。 サーバ指定であればそれが正解です。和田の言うことはどうせ当てになりませんから。 すいませんねほんと。</td>"; 略 push @result,"<th valign=\"top\">sendmailのパス</th><td><strong>[ NG ]</strong> ごめん・・・。和田も頑張ったんだけどさ・・・。そう人生うまくいくもんじゃないよね・・・。 探したよ!必死に!交差点でも 夢の中でも こんなとこにいるはずもないのに・・・。 ということで、ホントごめん・・・。サーバ会社の人に聞いてみてください・・・。 生まれてきてごめんなさい・・・。</td>"; } ◆出典 //www.synck.com/contents/download/cgi-perl/mailformpro.html#spec mailformpro4.1.2/mailformpro/librarys/check/main.cgi # Comments: # i read an interesting article many years ago about the effects of drugs on spiders in National Geographic Magazine. %0A it showed webs woven by spiders ""under the influence."" spiders high on marijuana wove bad webs; spiders on LSD wove exceptionally geometrical webs.%0 Aanyone know how i can locate the date of and issue this appeared in?%0A %0Amany thanks in advance to someone who has walked at least a mile in my shoes. 何年か前に興味深い本を読んだんだ。 ドラッグが蜘蛛に及ぼす影響ってやつをナショナルジェオグラフィックマガジンで。 それには蜘蛛が”ラリった”状態でどんなふうに巣を張るのかが書いてあったんだ。 大麻でラリった蜘蛛は最悪な巣だった。 LSDでラリった蜘蛛はとても幾何学的な巣を作っていた。 だれか予言できるか?このプログラムが問題を起こす日付けを。 あ そうそう こんな長いこと素足で長く歩かせてくれただれかさんに有難うって 言っとかなくちゃあなぁ。 ◆出典 //search.cpan.org/~softdia/Tie-Eudora-0.01/lib/Tie/Eudora.pm どうすればコメントのないコードを書くことができるか、というようなテーマの本は 結構出ているものだろうか。 >>151 アセンブリからさらにわかりやすくした高水準言語は 十分に人間が読めるのでコメントなどいらないという思想だな。高水準言語至上主義。 アスペはコード読むよりコメント読むほうが苦痛だというがほんとかねw まあいくらプログラミング言語の表現力がましても やはり一般人には自然言語のほうがわかりやすいと思うわ 英語をベースにしたコメント言語を作るとかは? >>152 読み手がどうとかいうよりさきにコメンドの内容によるだろ 無意味だったり間違ってたり関係無かったりするコメント読むよりはコード読むほうが楽だろJK ソースコードのところどころに無関係なコメントを忍ばせるのが俺流。 // 今日は帰りに焼きそばを買って帰る とか書いてる。 コメントは見出しみたいな物だ。何をしてるのか1行で自然言語で書かれていればソースコードのみより 明らかに読みやすい。 >>155 実際それが目的なんだけどな コピペが放置されてたり、そもそもコメントが無かったりで 「毎行コメント書くべし」なんてルールが出来て、 こんなコメントが量産される訳だ i++; //ループカウンタをインクリメント 某でかいとこの案件で、毎行コメント書けって言われて 無能しかいねーんだなと思ったな。 まあ、デカいとこになるとさ、エンジニアではない有象無象のオペレータ向けの ルールにせざるを得なくなるから仕方ないのかな〜とは思うけど、 やっかいなのはこういうデカイとこ特有のくだらないルールを見て 何でも右習えでドヤ顔で小規模チームにも適用したがるアホなマネージャ連中だ 出来る人向けのルールとしては、GoogleのC++のが結構参考になる、かな? あそこは例外禁止だけど 以前に毎行コメント書けなんて言うデカいところのコードレビューで、 「構造体は代入出来ないからmemcpyで書き直せ」なんて言われちったよ レビュアーがこういうレベルだから変なルールを作らないといけないのか 変なルールで固めて考えさせないから、こういうレベルに育ってしまうのかね… エレメンタル プログラミングのすゝめ ttp://takeshik.org/blog/2015/02/28/elemental-programming/ コードをそのまま言葉にしただけのコメントは可読性を下げるだけだな。 >>164 コードをそのまま言葉にしただけのコメントは可読性を下げるだけだな。 激しく同意する。 コメントは概要を知らせるもの。詳細についてはソースを見ればよい。ソース全部を見 渡す前に迅速に そのコードの概要を知らしめるコメントであるべき。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる