コメント研究すれ。

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2008/03/20(木) 04:03:47
C言語でコメントを書く時とても迷うよな?

・見易さ
・書き易さ
・分かり易さ
・一貫性(統一性)
・とどけこの思い


とか、何でもいいからいい感じのコメントの書き方を考えませう。
2008/03/20(木) 14:51:21
>>16
だったらtrueと比較するのではなくfalse (0)と比較するほうがいい。
218
垢版 |
2008/03/20(木) 14:56:34
>>18
以下の代入ができてしまうコンパイラや設定が可能らしい。(普通はエラーかワーニングがでるけどね。)
if (bErrorFlg = true) {}

左に書いてあると、確実にエラーになる。
if (true = bErrorFlg) {}

製造業だと今でも普通に使われる規約の一つだぞ。
2008/03/20(木) 15:07:14
>>16
> boolがintになっても対応可能だからとかいう理由だったような。
理由になってないと思うが・・・。
多分、そういう規約作ってる奴もよく分かってないんだと思うぜ。

>>21
そういうこと分かった上で言ってるんだと思うが。
2008/03/20(木) 15:09:01
true と比較しても危険性が増えるだけであまり意味が無い。
どうしてもというなら != false になるが、
これも二重否定で可読性に難があると思う。
2008/03/20(木) 15:11:01
bool から int に変えて、新しくフラグを追加した時にも、
true との比較ならそのままのコードで通るってことじゃないかな。
そのままのコードで放置することがいいことかどうかは知らんが、
フェイルセーフということならありかもしれない。
2008/03/20(木) 15:20:23
むかし「偽以外は全て真の可能性があると心得よ」
とか教わった
2008/03/20(木) 15:23:16
装飾が多いコメントは見づらい
////////////
//むほむほ//
////////////

/***********
  うはうは
************/
2008/03/20(木) 17:32:34
>>24
if (hoge() == true) ・・・

みたいなソースなのに、hoge()が、bool値を返してなかったら、カオス過ぎるだろ。
2008/03/20(木) 17:36:22
変更はするが、変更洩れがあっても動く、ってことだな。
2008/03/20(木) 18:01:08
bool値のリテラルと比較してるソースってすごい素人くさいよな。
世間で評価されている書籍とか、プロダクツのソースとかで、それをやってるのはすごい少数派。
2008/03/20(木) 22:12:46
スレチの話題で盛り上がってる券
2008/03/20(木) 22:20:12
「コメントに関する無意味な話」になってないだけマ板よりマシ
そういう向きにはマ板のスレが適切
間はない
2008/03/21(金) 15:28:06
/* test code */

条件コンパイル使えって話もw
2008/03/24(月) 10:37:21
突っ込みどころを探すスレはここですか?
2008/03/24(月) 21:04:58
関数の説明書きって皆どうやって書いてる?
2008/03/24(月) 21:20:42
規約があればそれに従う。
そうでなければ関数と引数と戻り値の説明を書く。
2008/03/24(月) 21:25:41
それをどう書くか聞いたつもりなんだけど・・・。
2008/03/24(月) 21:27:44
cだとdoxygenizeのjavadocスタイル
javaだとry
2008/07/21(月) 00:29:43
>>36
精子を出す関数
チソチソをマムコに突っ込む
戻り値-精子
2008/07/21(月) 15:58:25
精子を出す関数がマムコに突っ込むのか?
戻り値が精子なら、セクースの実装は分離すべきだろ
副作用についての記述が分離できなくなるし、絡み合い過ぎて再入可能性が損なわれそうだ
再入可能じゃない精子を出す関数なんて大問題だろ
40かばとっと
垢版 |
2009/06/15(月) 18:42:06
年賀状の配達は無事すんだかどうかわかりますでしょうか。
2009/06/17(水) 14:15:18
自分は、DoxygenでJavadoc風の書式を使ってます。
Qt風の書式は余り好きじゃないんで。
2009/06/19(金) 00:07:00
MFCのソースとか見ると、ほとんどコメントなんてついてないよな。
最先端のところでは、コメントを極力書かないのが、主流なの?
2009/08/17(月) 17:46:50
Q. 自動保守#K9K?_D[L とは一体何なのか?
A. 外部サイトへの突撃大好きな真性厨房

韓国突撃でお馴染みの自動保守
最近は自動焼人 ★として2ちゃんねるのボランティアにも精を出す日々
だがそんな彼にも、人間らしい部分はあったのだ…

名言集
『アパッチ砲はワシが作った』
『お前が規制系キャップ取れるか審査してやるよ』
『いつもサボってばかりのキャップがウゼえ』
『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』
『俺の経歴カックイイだろ?』

最近のニュース
 8月15日の韓国突撃の際に歴史的大敗を喫する。ラジオでの敗戦宣言のときに声が震えていた
 本人は体調不良と言っているが…


----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
2010/03/13(土) 18:29:04
コメントを書くべきか書かざるべきか
http://www.infoq.com/jp/news/2010/03/To-Comment-or-Not-to-Comment
2010/03/13(土) 19:29:54
>>44
> Kelly Leahy氏は、一目瞭然のわずかなコメントが散りばめられているようなコードが好みだ。
この訳はおかしいな。

「ごくわずかなコメントがところどころにある自己説明的なコード」が正解かと。
46デフォルトの名無しさん
垢版 |
2011/05/29(日) 04:16:48.41
1行毎に 「/* */」使ってスペースで「*/」の位置合わせてるコメントとか個人的にかなりウザイんだが…
メンテする時も行端合わせにゃならん気がしてスペース連打、でもメンドくなって 「//」
2011/05/30(月) 12:21:37.58
つ[プロポーショナルフォント]
2011/05/30(月) 18:56:54.58
いや、フォントの問題を言ってるんじゃないと思うが・・
2011/05/30(月) 19:03:46.34
プロポーショナルフォントでカラムを揃える気になるか? つまりはそう言うことだ。
2011/05/30(月) 23:13:14.30
うちには来ないでください
51デフォルトの名無しさん
垢版 |
2011/06/04(土) 14:11:06.33
1行コメで /* */ 使う人って何考えてるの?
2011/06/04(土) 15:32:33.99
C89なんだろ
2011/06/06(月) 01:24:35.92
/*
54デフォルトの名無しさん
垢版 |
2011/06/06(月) 21:36:49.00

うひょおおおおおおお !!!!
明日から毎日休みだぜぇ〜!!

*/
55デフォルトの名無しさん
垢版 |
2011/07/11(月) 20:39:10.82
C89でやってるとこまだあるの?
2011/07/11(月) 20:55:03.80
ネストできないコメントなんて死ねばいいと思うの。
57デフォルトの名無しさん
垢版 |
2011/07/16(土) 14:46:50.89
ブロックコメントで/**/使って箱型にするのやめてくれよ、マジで
2011/07/16(土) 15:40:32.13
ズレを直すためにスペースキーを連打することに恍惚を覚える
2011/07/16(土) 18:07:54.48
ブロコメはソース行頭くらいでしか使う気にならない
2011/07/16(土) 19:04:50.28
必要な処理はすべてプログラム自体にかかれている。
だから、プログラムコードを読んでも、すぐに分からないことをコメントにしてほしい。

例えば、関数の要約とか、そのように処理をしないといけない理由や意図などといったことだ。
それがプログラムの読者が疑問を持った箇所に書かれているならば、良いコメントだ。
2011/07/17(日) 10:30:50.56
まずコメントにして、それをコードに直していく。
だから、コードを全部書き終えるとコメントがなくなる。

仕事は別。
2011/07/19(火) 09:50:31.42
会話もできないやつらにコメントなんか出来るわけない
63デフォルトの名無しさん
垢版 |
2011/07/29(金) 10:42:08.90
カオスラウンジもpixivもしんで。
64デフォルトの名無しさん
垢版 |
2012/02/28(火) 02:04:09.60


/********************************************************/
/* こういう箱型ブロックコメント、いい加減やめませんか?     */
/* タイプ量増えるしメンテめんどいの判りますよね?         */
/* 後でメンテする人の身にもなってください。             */
/********************************************************/




65デフォルトの名無しさん
垢版 |
2012/02/28(火) 02:50:44.23
/*
おれは普通にこうしてるでゲソ
日本語つーか最後に\x5cがきてもおーけーゲソ
\x5cでトラブルのは怖いでゲソ
いまだにSJISで書いてるのは突っ込まないで欲しいでゲソ
*/
2012/02/28(火) 02:57:27.58
/*
120228 ageてしまったでゲソ
コメントはなるべく日付入りで書いとくべきでゲソ
何を思って書いたのか3日経つと忘れてしまうでゲソ
>>37 doxygen形式なんかはお勧めできないでゲソ
別ファイルじゃどうせ見ないしはっきりいって面倒なだけでゲソ
時間を無駄にしたなでゲソ
*/
2012/02/28(火) 03:43:14.19
Doxygen 形式を勧めない理由が判らん。
別ファイルじゃ見ないってのは判るが、ソース中に埋めているんだからいつでも見られるだろ。
2012/02/28(火) 07:16:12.34
どうせ見ないゴミのためにコメントが汚染されるのが嫌なんだよ
2012/02/28(火) 07:43:51.64
何その教条主義。
70デフォルトの名無しさん
垢版 |
2012/02/29(水) 11:56:39.37
#if 0
// 自分の中のベスト
#elif 0
// だめだこりゃ
#elif 0
// まあまあ
#else
// これが基本形
#endif

javaにはできない芸当
2012/02/29(水) 12:11:13.87
とりあえずバージョンコントロールソフトちゃんと使え。
それで残るようなやつは実行時 if で書いとけばいいよ。
そうすればちゃんとコンパイルエラーも出るしな。
72デフォルトの名無しさん
垢版 |
2012/02/29(水) 12:29:47.88
↑ちょっといみわからない
くやしく!
2012/03/01(木) 14:21:57.72
>>72
void func()
{
if (0) {
// ここに書いておくと実行されない(最適化で消えるかも)がコンパイルは行なわれる。
SomeTestFunc();
} else if (0) {
// こういう風に幾つも書けるのも、#if と変わらない。
SomeBetaFunc();
} else {
// ここに書いてあるコードが最終版
SomeReleasedFunc();
}
}
2012/03/04(日) 18:10:38.32
コメントもコンパイルされるようにならないかな
コメントメンテされずに実装と不一致してるプロジェクトとかもうこりごり
信じることできないコメントとかどうなん
2012/03/04(日) 18:19:34.59
>>74
コンパイルしたいだけなら>73でいいが、要は不適切なコメントを排除したいのだろ。
引き数の説明の不一致なんかはある程度はDoxygenで管理していれば警告してはくれるけど、
その先は人力でやるしかないだろ。つーか、コードレビューもしないのけ?
76デフォルトの名無しさん
垢版 |
2012/05/20(日) 11:55:08.56
if (status) { // 接続完了?

}

if文のコメントに「?」付けるな、断定的なコメントにしろ
{ }内の実行条件がどっちなのか一瞬不安になるだろ
77デフォルトの名無しさん
垢版 |
2012/05/20(日) 12:56:33.42
俺が今までに見た最強のコメント。

a=1; //aに1を代入
2012/05/20(日) 13:05:57.02
>>77
そういうのはコメント書け書けとうるさい奴に対する嫌がらせでわざとやってるんだろう
もしそうじゃなかったら、そいつは即刻クビ/留年にすべきだ
2012/05/20(日) 13:15:25.70
>>76
if文で判定していることそのものを指すときには疑問文にすることはしばしば。例えば、
--
if (fp == NULL) { // ファイルは開けなかった?
--
こんな感じ。
>76の例は変数名が不適切だからそれを補う意味ではありではないかな。
2012/05/21(月) 16:26:15.33
>>76
怒るとこ違うんじゃないの?
俺だったらif (status)とかいう意味不明な変数名じゃなくてif (connected)とかにしろと言うな。
2012/05/21(月) 16:28:00.41
>>76
どう考えても{}内は接続完了のときの処理だろ。
{}内が接続完了出来なかったときの処理なら怒る。
2012/05/21(月) 20:59:28.19
>{}内が接続完了出来なかったときの処理なら怒る

実際あるから困るw
何かエラーが発生したら0以外のエラーコード返すようなの
2012/06/26(火) 13:59:59.23
/**//**************
コメント内容
*******************/
関数宣言

最近はこんな感じの書き方してる。
最後のスラッシュ削れば後ろに書いた関数がまとめてコメントアウト出来る
2012/06/26(火) 15:22:02.65
これは、イライラするな
85デフォルトの名無しさん
垢版 |
2012/06/26(火) 22:52:24.63
>/**//**************

半端な所にある // も含むの?
2012/06/27(水) 01:48:12.98
キモすぎ
2012/06/29(金) 00:56:48.87
/**//*************
******************/←これを外すと
func(){ }
  ↓ここまでコメントアウトして止まる
/**//*************
2012/06/29(金) 01:04:56.31
/******************
コメント内容
*******************
関数1

/******************
コメント内容
*******************/ ← 結局ここで止まるから//無くても同じじゃね?
関数2
2012/06/29(金) 02:05:50.80
吊ってくるノシ
2012/06/29(金) 11:17:26.13
コメントが真であるためには、コメントに責任を持たせればよい。
http://nojiriko.asia/prolog/prolog_55.html
の中に現れる、資料/2という述語定義とそれを呼び出す副目標は
意味的にコメントである。
こうして置けば、コメントが書き換わっただけだと、プログラムの実行が
偽になってしまう。
2012/07/01(日) 11:31:23.60
//*
最初の/の有無でほげほげ
//*/
2012/07/17(火) 21:58:11.02
適度に遊びを入れて______s----------z______みたいな区切りって使えないかな
やっぱ怒られる?
2012/08/05(日) 22:01:00.08
コメントには処理の目的を書いて欲しい

// 高さを取得する
じゃなくて

// カーソルの有効判定をするために高さを取得する
ってな感じ
2012/08/06(月) 17:41:36.58
>>93
それ、「カーソルの有効判定をする」メソッドにして、「高さを取得する」のコメント無しの方がいいよ。
2012/08/09(木) 19:21:44.98
// おまじない
// メイン関数
// 変数定義
// for ループ
// 代入
// プリント関数
// ゼロをリターン
96デフォルトの名無しさん
垢版 |
2012/08/30(木) 10:34:05.48
>>90
こっちの方がいいんじゃないか
http://nojiriko.asia/prolog/bsort_2.html
2012/10/06(土) 13:58:04.07
>>79
if文が条件判断なのは明らかだからコメントを疑問形にする意味がないと思う
98デフォルトの名無しさん
垢版 |
2012/10/14(日) 17:22:57.65
コードで書いていることを
コメントにするな。
2012/10/14(日) 17:47:55.40
>>98
解説してはいけないの?
100デフォルトの名無しさん
垢版 |
2012/10/14(日) 17:55:11.33
>>99
if(isXXX()) {} //比較命令です。isXXX関数を呼び出して値が真であるかチェックしています。

みたいなのはいらんよ。
コードに書いてあることなんだから。
101101
垢版 |
2012/10/16(火) 12:58:44.71
このスレッドは100を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
102停止
垢版 |
2012/10/16(火) 14:58:19.22
糞・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
2012/10/16(火) 22:34:35.48
上から読んでも下から読んでも全く同じ回文プログラム

main(){printf("死ねハゲ");}//};)"ゲハね死"(tnirp{)(niam
104デフォルトの名無しさん
垢版 |
2012/10/16(火) 23:56:11.71
バイト並び違うな。
2012/10/17(水) 10:06:24.43
それ末尾に//挟んで逆さまにしただけやん
2012/10/19(金) 23:33:46.51
コメントすれだけに//は外せない
2012/10/20(土) 19:46:38.20
>>105
おお、任意のプログラムを回文プログラムにするアルゴリズム!
2012/11/19(月) 02:21:58.00
ドキシジェンだっけ?
コメントで判定して自動でドキュメント作ってくれる奴
アレの書き方を習得してみたいが資料がよく分からん
2012/11/19(月) 03:50:54.79
>>108
取り敢えず、Doxygenスレに行ってみてはどうだろう。
2012/11/20(火) 02:02:57.81
専用スレがあるのかw
2012/11/22(木) 08:43:19.46
Prologだとコメントに引数を与えると述語になる。
2012/11/23(金) 05:17:16.32
引数を与えるとではなくて、末尾にピリオドを付加すれば、だ。
全角文字の扱いからSWI-Prologでは「、」「。」など、ひらがな、カタカナの
記号を含む場合は、全体をシングルクォートで囲む必要がある。
IF/Prologではその必要はない。それから本当に頭の % を削るかどうかを思案する。
113デフォルトの名無しさん
垢版 |
2013/03/01(金) 22:28:19.61
>>64
ああwそれよく見るけどよくムカつくw
2013/03/04(月) 21:49:47.37
専ブラ使ってない人まだいたのか
2013/04/06(土) 15:03:59.14
*/


/*
116デフォルトの名無しさん
垢版 |
2013/05/23(木) 00:50:14.75
*/
2013/05/23(木) 07:53:37.56
   /*
  /
 /
*/
2013/06/19(水) 22:15:18.37
コメントがどこに対してかかっているのかを明確にするために、

//コメント
if(){

}

ではなく、

if()
{ //コメント

}

と書くようにした。
前者だと、コメントアウトがごちゃごちゃしてるコードを修正するときなんかに、
if節の前の部分の処理や宣言に対するコメントなのか、if節の処理に対するコメントなのかわかりづらい。

関数宣言も

void foo()
//コメント
{

}

って書くようにしてる。
インデントをIDEがサポートしてくれないからめんどくさいけど、グローバル変数やexternや、関数外の注釈とかと
まぎらわしくなくなる。
2013/06/20(木) 01:11:47.24
>>118
んな独自手法編み出さして使わなくても、コメントは対象の前、コメントの前とコメント対象の後に
空行を置くようにすれば自然で十分。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況