ぱっと見て「ヘタだなぁ」と思うコード
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/03/09(木) 10:16:55・サブルーチン(関数)が数百行
・ネストが深い
・マジックナンバーが使われまくり
・識別子(変数名、関数名)が意味不明
・グローバル変数使われまくり
↓応用編、詳細編どうぞ
0002デフォルトの名無しさん
2006/03/09(木) 10:17:530003デフォルトの名無しさん
2006/03/09(木) 10:18:30・古いコードがコメントアウトで残してある(しかも履歴つき)
0004デフォルトの名無しさん
2006/03/09(木) 10:25:01それが下手と関係あるのか?
0005デフォルトの名無しさん
2006/03/09(木) 10:39:34かなりヘタ。
0006デフォルトの名無しさん
2006/03/09(木) 10:47:24俺はコメントしても、時間が経ったらコメントごと消すようにしてる
0007デフォルトの名無しさん
2006/03/09(木) 10:48:45究極は、#ifdef 0 でコメントアウト。
0008デフォルトの名無しさん
2006/03/09(木) 10:49:10イベントハンドラから呼ばれた入力データのチェックルーチンが直接コントロール
なり、フォームの入力を保持してる変数を直接見にいってるから、使い回しがきかない
とか。
0009デフォルトの名無しさん
2006/03/09(木) 10:53:10これも置いておきますね。
・制御文が2種類しか使われない
0010デフォルトの名無しさん
2006/03/09(木) 10:57:15#if 0
ではないのか
0011デフォルトの名無しさん
2006/03/09(木) 11:13:06Public:
int initialize()
int execute()
int finalize()
以上。
0012>>11
2006/03/09(木) 11:15:46int initialize()・・・呼ばれていない
int execute()・・・約1200STEP
int finalize()・・・呼ばれていない
orz
0013デフォルトの名無しさん
2006/03/09(木) 11:17:21下手なだけで、「int execute()・・・約1200STEP」を読めなくは無い。
クラスにしてくれてるだけ、メソッド分離しやすいぉ。
0014デフォルトの名無しさん
2006/03/09(木) 11:49:210015デフォルトの名無しさん
2006/03/09(木) 11:51:58ニッチもサッチも逝かないのが、ハードコーディングですぅ。
0016デフォルトの名無しさん
2006/03/09(木) 12:12:29古いコードは残しておく。
別にパフォーマンスにも響かないし、最近のエディタなら
邪魔だと思ったらたたむことも出来る。
とくに最適化前のコードは絶対に残しておく。計測用に
切り替えて使うこともあるから。
一度書いたものはなんであれ財産。消すことは絶対許して
いない。
0017デフォルトの名無しさん
2006/03/09(木) 12:17:29なんか力、入ってますねー。
ソースコード管理システムを使ってれば、HEAD/trunkで消してもすぐ元に戻せるんですが。
自分はソースの見通しが悪くなるようなのは積極的に消します。
残すのはコメントでリビジョン書いとくくらい。
0018デフォルトの名無しさん
2006/03/09(木) 12:27:33一世代くらい前ならともかく、数世代まえになると、コメントアウトでコードを
残すなんてことをやってるところじゃ、復元不可能。
0019デフォルトの名無しさん
2006/03/09(木) 12:29:13バージョンにブランチ(枝)すると、複数の分岐で開発出来るお。
で、良いやつを本枝にマージすると完璧。
0020デフォルトの名無しさん
2006/03/09(木) 12:53:55バックアップ取れば良いじゃん
0021デフォルトの名無しさん
2006/03/09(木) 12:58:44度忘れちゃた
0022デフォルトの名無しさん
2006/03/09(木) 13:02:090023デフォルトの名無しさん
2006/03/09(木) 13:05:500024デフォルトの名無しさん
2006/03/09(木) 13:10:49文字列のクリアで
memset(str, NULL, sizeof str);
みたいな。
(memset()使ってるってのもあれだし。本人は手間をかけて安全なコーディングを
してると思ってるっぽいけど)
0025デフォルトの名無しさん
2006/03/09(木) 13:13:08NULLは意味的に間違いとしても、
memsetが何でダメ?
組み込み系ソースのfor文で回して0にしてたり、
メモリのアロケートやり直しで初期化してるつもり(本人から確認)のコードの方が驚いた。
0026デフォルトの名無しさん
2006/03/09(木) 13:32:19初期化子使えとかそういうことでは?
0027デフォルトの名無しさん
2006/03/09(木) 13:35:26strcpy(hoge, "初期値"); か hoge[0] = '\0'; で十分なところを、
memset()で全部クリアしてるってこと。
0028デフォルトの名無しさん
2006/03/09(木) 13:49:45これ、C++とかじゃなくて、C言語とかだと結構セキュアに動作するお。
C言語の開発中バグでメモリ破壊したときとかに。
0029デフォルトの名無しさん
2006/03/09(木) 14:03:540030デフォルトの名無しさん
2006/03/09(木) 14:06:42って難だっけ?
メモリカードとかはFFで初期化したような。
0031デフォルトの名無しさん
2006/03/09(木) 14:10:53hoge[0] = '\0'
ならバグるところを
memset()
ならバグらないって状況を、セキュアと呼んでいいのだろうか。。。
0032デフォルトの名無しさん
2006/03/09(木) 14:14:100033デフォルトの名無しさん
2006/03/09(木) 14:51:24開発中にアプリがどっかーんといくときに、
OS吹っ飛ばさない、その方がボロクソデバッガでも変数とか把握しやすい、ということ。
Win16時代にC言語プログラミングしてない若造には分からんこと。
0034デフォルトの名無しさん
2006/03/09(木) 14:53:13003533
2006/03/09(木) 14:53:14>hoge[0] = '\0'
を評価しても、C言語ではふつー、C++ではダサダサ。
0036デフォルトの名無しさん
2006/03/09(木) 14:55:03`rm $foo`;
`mv $bar $bar.bak`;
とか。
0037デフォルトの名無しさん
2006/03/09(木) 14:57:37バグが表面化しないのくらべたら、OSごとドッカーンといくほうがかなりマシというか。
0038デフォルトの名無しさん
2006/03/09(木) 15:01:37OSがドッカーンと逝かない(普通逝かない。Win16以前しかそんな話無いし、汎用機がドッかーンと逝ったら大騒ぎで該当ツール使用禁止令も出る)アプリをバグ無しアプリと言うんだが。
0039デフォルトの名無しさん
2006/03/09(木) 15:03:580040デフォルトの名無しさん
2006/03/09(木) 15:04:08安全策をとるならば、文字列の終了位置であるはずのところに
'\0'を上書きしとくべきなのでは?
0041デフォルトの名無しさん
2006/03/09(木) 15:07:25>>35
004241
2006/03/09(木) 15:09:11ヌルターミネイトを大目にとmemsetとした。
0043デフォルトの名無しさん
2006/03/09(木) 15:10:45ヘタなスレ立てだな・・・
最近立つのはゴミスレばっかり
0044デフォルトの名無しさん
2006/03/09(木) 15:12:06なんてのを見つけると、そこから先を読むのが厭になる。
>>40
それをしないのが、下手糞が下手糞たる所以。
0045デフォルトの名無しさん
2006/03/09(木) 15:12:36(1)バグがある
(2)コードを追いかけたりしない
(3)とりあえず文字列をmemset()で0クリアしてみよう
(4)直った!
これは直ったわけじゃなくて、表面化しなくなっただけ。
こういうことをしてる新人がいたら、デバッグをやり直させるでしょ。
memset()で前もってクリアしておこうってのは、いきなり(4)の状態になる
可能性があるわけで、バグの存在さえ認識できない可能性がある。
0046デフォルトの名無しさん
2006/03/09(木) 15:13:11charも安心、intとかfloatもintelでは0になるし、実は他CPUでも0になる。
どのソース見てもmemsetの嵐だお。
0047デフォルトの名無しさん
2006/03/09(木) 15:14:12どちらにせよ、
>hoge[0] = '\0'
おまいはC++時代のダサダサフ用人間。
0048デフォルトの名無しさん
2006/03/09(木) 15:14:34for(int i = 1 ; i < 11 ; i++)
foo[i - 1] = 0;
0049デフォルトの名無しさん
2006/03/09(木) 15:16:05いや、それは違うだろ。
0050デフォルトの名無しさん
2006/03/09(木) 15:16:24>memset()で前もってクリアしておこうってのは、いきなり(4)の状態になる
>可能性があるわけで、バグの存在さえ認識できない可能性がある。
C言語時代にはこれを目指してmemset使われまくり(当時の慣習)でしたが、何か?
0051デフォルトの名無しさん
2006/03/09(木) 15:17:210052デフォルトの名無しさん
2006/03/09(木) 15:17:310053デフォルトの名無しさん
2006/03/09(木) 15:18:16if (hoge == true)
に比べたらまだましではなかろうか。
0054デフォルトの名無しさん
2006/03/09(木) 15:18:24なら、
>hoge[0] = '\0'
こんなコードを書く香具師は頃してしまえ。
0055デフォルトの名無しさん
2006/03/09(木) 15:18:35http://pc8.2ch.net/test/read.cgi/tech/1127283408/
0056デフォルトの名無しさん
2006/03/09(木) 15:18:55同意。
trueは不定、falseは0固定だもんね。
0057デフォルトの名無しさん
2006/03/09(木) 15:21:02「C言語+memset」
「C+++stringでヌル無視」
の組み合わせが良い。
>hoge[0] = '\0'
↑
こいつはこれだ! >>ttp://pc8.2ch.net/test/read.cgi/tech/1127283408/
0058デフォルトの名無しさん
2006/03/09(木) 15:21:25OSのカーネルとか、データベースとか信頼性が要求されるコードでは、
そういうの見たことないなぁ。
0059デフォルトの名無しさん
2006/03/09(木) 15:21:29・mainメソッドの先頭30行くらい全部変数宣言だけになっているとき
0060デフォルトの名無しさん
2006/03/09(木) 15:21:34それは君の周りだけでは?
0061デフォルトの名無しさん
2006/03/09(木) 15:23:02>>60
0062デフォルトの名無しさん
2006/03/09(木) 15:24:04>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
↑
こいつヴぁか杉!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0063デフォルトの名無しさん
2006/03/09(木) 15:26:01きっと、デスマーチが当たり前な悲惨な現場で育ったんだよ。
0064デフォルトの名無しさん
2006/03/09(木) 15:27:070065デフォルトの名無しさん
2006/03/09(木) 15:28:15そういう暴れ方しても、言ってることに説得力でないよ。
0066デフォルトの名無しさん
2006/03/09(木) 15:28:270067デフォルトの名無しさん
2006/03/09(木) 15:29:25至上最強の恥ずかしさ: hoge[0] = '\0'
C言語解説本の出だしでしか見た事無いぉ。
0068デフォルトの名無しさん
2006/03/09(木) 15:30:40現代においてもtrueが不定という定義は普遍ですが、何か?
逆に古い実装のtrueがdefineされてる場合にのみ正常動作。
0069デフォルトの名無しさん
2006/03/09(木) 15:31:56俺はC++のつもりで話をしたが、どうやらお前はC++とは別の言語の話のようだ。
すまんな、俺の勘違いで。
0070デフォルトの名無しさん
2006/03/09(木) 15:32:35>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
>hoge[0] = '\0'
↑
氏んだ方がいいよwwwwwwww
0071デフォルトの名無しさん
2006/03/09(木) 15:33:01C言語ならTRUEがdefineされてるから正常動作だが、
C++言語なら言語仕様のtrueだから値がますます不定になる。
0072デフォルトの名無しさん
2006/03/09(木) 15:44:12?
あえて聞きたいのだが、不定でも別に問題ないんじゃないか?
例えば↓のようなコードが合っても、
if( b==true ) ;
代入時でどうせ↓のようにしてるんだから問題ないんじゃないの?
bool b = true;
↓コレだったらまあわかるんだけど。
int i = 1;
if( i == true );
↓この記述が悪いっていってる意味があまりわからん。
if( b==true ) ;
0073デフォルトの名無しさん
2006/03/09(木) 15:44:40int *p = reinterpret_cast<bool*>(&b);
こうでもすれば*pの値はたしかに不定だろうが、static_cast<int>(true)は1だ。
JIS X3014:2003の4.7の4節。
0074デフォルトの名無しさん
2006/03/09(木) 15:46:04>代入時でどうせ↓のようにしてるんだから問題ないんじゃないの?
>bool b = true;
Win32APIをご存知無い?
返す値がBOOLでありながら不定(実体はハンドル。メモリポインタ)だお。
0075デフォルトの名無しさん
2006/03/09(木) 15:47:19?
それはWin32APIのインターフェースでTRUEとFALSEという定数で比較するようにすべきだから、
C++のtrueとfalseで比較するほうが間違ってるんじゃないか?
0076デフォルトの名無しさん
2006/03/09(木) 15:47:29そういえば、mem〜、str〜系の関数も失敗で0を返しても、
成功はポインタ返してtrueの代わりにしてるね。
0077デフォルトの名無しさん
2006/03/09(木) 15:48:57現実は真偽値の定義をとって、trueの場合は0以外の不定値をふつーに返す関数が溢れながら、
それを知らずにとは。
>代入時でどうせ↓のようにしてるんだから問題ないんじゃないの?
>bool b = true;
↑
こいつプロジェクトメンバから外せ。
007872=75
2006/03/09(木) 15:49:01Win32APIなんて懐かしいものはもう忘れた orz
0079デフォルトの名無しさん
2006/03/09(木) 15:49:29TRUE比較はダメ。
0080デフォルトの名無しさん
2006/03/09(木) 15:49:34得る物がないんだよな。
0081デフォルトの名無しさん
2006/03/09(木) 15:50:130082デフォルトの名無しさん
2006/03/09(木) 15:51:21008375
2006/03/09(木) 15:51:49>現実は真偽値の定義をとって、trueの場合は0以外の不定値をふつーに返す関数が溢れながら、
そういう戻り値は大概intだろ?boolのtrue、falseと比較する意味がわからん。
それにそういう関数の仕様を読めば何と比較するか書いてあるだろ。trueとfalse以外で比較することが。
それをtrueとfalseで比較するのか君は。
0084デフォルトの名無しさん
2006/03/09(木) 15:51:59C++なんて窓から投げ捨ててCやれば良いじゃん
0085デフォルトの名無しさん
2006/03/09(木) 15:52:09戦死にもたまには休息が必要だ
0086デフォルトの名無しさん
2006/03/09(木) 15:53:44大変だねPGって
0087デフォルトの名無しさん
2006/03/09(木) 15:53:46クソスレかと思ったら良スレだったんだな
0088デフォルトの名無しさん
2006/03/09(木) 15:54:20おまい、超無知杉。
char *pc = getPt();
if (!pc) throw exception("Error");
とかやるじゃん。
008988
2006/03/09(木) 15:55:19if (pc = false) throw exception("Error");
はおkでも、
if (pc != true) throw exception("Error");
はダメだろ。
0090デフォルトの名無しさん
2006/03/09(木) 15:56:21おまえら こういう話 大好きだよな
0091デフォルトの名無しさん
2006/03/09(木) 15:56:49009275
2006/03/09(木) 15:57:21いや、あの、それくらいは知ってるんだが…。
俺が言いたいのは↓のような間違ったtrue、falseの使い方を例示もせず
char *pc = getPt();
if (pc==false) throw exception("Error");
↓のコードだけ例示して==false使う奴はアホとかいってるのがよくないといいたいの。
if (pc==false) throw exception("Error");
0093デフォルトの名無しさん
2006/03/09(木) 15:57:48もしそう見えてしまうならまともな書籍買ってきて目を通したほうがいい。
こんな糞スレにいるより10倍の量と精度の知識が身につくだろう。
009456
2006/03/09(木) 15:59:53結論。
おまいの読み間違い。
>>44 >>53 >>56
の流れだから、TRUEとの比較はダメの流れ。
89でも同じ文章を書いている。
009575
2006/03/09(木) 15:59:54いや、ポインタをfalseで比較するのは駄目かと・・・。NULLで比較すべきかと・・・。
その元のgetPt関数だって、エラーの場合は戻り値でreturn NULL;とか書いてるはずだろ。
return false;じゃ型の不一致でコンパイルエラーだとおもうぞ。
0096デフォルトの名無しさん
2006/03/09(木) 16:00:17009744
2006/03/09(木) 16:02:03hoge が真理値のつもりなら、なんでいちいち等価演算子
使うんだ?っつー話。
0098デフォルトの名無しさん
2006/03/09(木) 16:02:04いや、Win32/C言語の全盛期はFALSEがDEFINEされてて、
if (XXX != FALSE) { //ハンドルが無効で無い
//処理
}
と説明本でも書かれてる。
0099デフォルトの名無しさん
2006/03/09(木) 16:05:13いつの時代の話だよ。 つーか氏ねよ
010075
2006/03/09(木) 16:05:28おー、そういうこと?例えば↓こうとか?
int a=100;
int condition = (a==100);
if( condition == false ) ;
それなら確かに。
==とかの比較演算子はたしか偽の場合0で真の場合1でいいんだっけ?
それをtrue、falseではたしかにまずいな。
0102デフォルトの名無しさん
2006/03/09(木) 16:06:52まともな参考書読めということでは?
010375
2006/03/09(木) 16:09:18それはWin32APIのHANDLEが戻り値である関数の正常異常比較方法の話でそ?
>>89はchar*をtrueやfalseで比較してるので変ですよといってるのです。
0105デフォルトの名無しさん
2006/03/09(木) 16:21:55else if (true == false)
else if (true != false)
else if (true != true)
0106デフォルトの名無しさん
2006/03/09(木) 16:22:46>>88とかやってしまいそうなんだけど、やっぱりNULLで比較するべきなん?
0107デフォルトの名無しさん
2006/03/09(木) 16:25:440109デフォルトの名無しさん
2006/03/09(木) 16:27:120110デフォルトの名無しさん
2006/03/09(木) 16:27:45どっちでも NULL 比較だろ
0111デフォルトの名無しさん
2006/03/09(木) 16:28:230113デフォルトの名無しさん
2006/03/09(木) 16:30:070114デフォルトの名無しさん
2006/03/09(木) 16:32:120115デフォルトの名無しさん
2006/03/09(木) 16:33:06仕様がシンプルで良い言語だから論争にならないんじゃまいか?
0116デフォルトの名無しさん
2006/03/09(木) 16:34:18int main(void) {
これとかこれ
nCount += 2; #カウントを2増やす
意味のないコメント
0117デフォルトの名無しさん
2006/03/09(木) 16:35:190118デフォルトの名無しさん
2006/03/09(木) 16:39:01>>116
貴様、スクリプト言語を主流に使っているな!?
コメントが#になってまつ。
0119デフォルトの名無しさん
2006/03/09(木) 16:52:00bool変数2つを !x != !y とやるのはアリ?
0120デフォルトの名無しさん
2006/03/09(木) 16:59:08またある関数ではfilename
さらに他の関数ではFilename
大文字小文字はある程度は統一しようぜ
0121デフォルトの名無しさん
2006/03/09(木) 17:09:48初期化処理を毎回コピペしてるよりマシ。
0122マイク ◆yrBrqfF1Ew
2006/03/09(木) 17:51:36精神的な健康とのトレードオフですよ。
0123デフォルトの名無しさん
2006/03/09(木) 17:56:39ついていけなかったorz
誰か要約してください
0124デフォルトの名無しさん
2006/03/09(木) 18:07:55適当に使ってしまうから困るという話です
0125デフォルトの名無しさん
2006/03/09(木) 18:13:57最初に>>56>>66-73辺りでtuueが1か不定かという話があった。
そのうち>>72-から論理値をtrueやfalseと比較するのはよいかということに移り、
C++のbool/true/falseとWinAPIのBOOL/TRUE/FALSEとポインタ/NULLがごっちゃに。
全体的にtrueやfalseと比較することを肯定する方の書き込みがあると叩くの繰り返し。
0126デフォルトの名無しさん
2006/03/09(木) 18:26:38認められて役職のひとつでももらってから偉そうなこと言えよ
0127デフォルトの名無しさん
2006/03/09(木) 18:29:06しっかり比較したほうがいいよ。
if (hoge() == TRUE) とか。
0128デフォルトの名無しさん
2006/03/09(木) 18:30:55FALSEと比較しる!
0129デフォルトの名無しさん
2006/03/09(木) 18:35:19二項演算子をくっつけて書くとか。
if( x==10 ) {...
こんなの見ると、うへーとなる。
0130デフォルトの名無しさん
2006/03/09(木) 18:39:23TRUE 0
FALSE -1
みたいな変態ライブラリとかどうすんの?
unixのシステムコールに感化されてるのか、成功で0を返す、
エラーはマイナスで返すとか変な信条のやつがたまにいる。
0131デフォルトの名無しさん
2006/03/09(木) 18:49:03> TRUE 0
> FALSE -1
> みたいな変態ライブラリとかどうすんの?
変態ライブラリはとりあえず放って置いて、
> unixのシステムコールに感化されてるのか、成功で0を返す、
> エラーはマイナスで返すとか変な信条のやつがたまにいる。
これは、TRUEと比較すべきという根拠にはならない。
0132デフォルトの名無しさん
2006/03/09(木) 19:33:010133デフォルトの名無しさん
2006/03/09(木) 19:35:110134デフォルトの名無しさん
NGNGC++も昔はboolなかったの?
0135デフォルトの名無しさん
2006/03/09(木) 19:37:27つまりCが諸悪の根源。
Cなんてなくなればいいのに
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
2006/03/09(木) 19:54:26なかったよ
0138デフォルトの名無しさん
2006/03/09(木) 20:30:00MISRA-Cで引っかからないコード。
0139デフォルトの名無しさん
2006/03/09(木) 23:55:24C#だったら話が違ってくるような。
まあでもif (hoge != false)とかif (hoge == true)とか書くなら
if (isHoge)でいいだろとは思う。
0140デフォルトの名無しさん
2006/03/10(金) 09:49:14(hoge == true)
の評価がtrue だった場合、以下を実行する。
ということだよな
0141デフォルトの名無しさん
2006/03/10(金) 10:00:450142デフォルトの名無しさん
2006/03/10(金) 10:28:08true false と比較しなきゃいけないケースってあるの?
0143デフォルトの名無しさん
2006/03/10(金) 13:07:550144デフォルトの名無しさん
2006/03/10(金) 13:15:510145デフォルトの名無しさん
2006/03/10(金) 13:17:540146デフォルトの名無しさん
2006/03/10(金) 13:44:290147デフォルトの名無しさん
2006/03/10(金) 14:19:32bool b;
if(b)
{
//処理
}
って書けばいいってこと?
0148デフォルトの名無しさん
2006/03/10(金) 14:31:34プログラムってのは記述性によって、
人間に近づくもの。
自分だってこう書く。
>if(b)
>if(!b)
でも、初心者が、
>if(b != false)
と書くのは禁止出来ない。
しかしだな、
>if(b == true)
は禁止。
0149デフォルトの名無しさん
2006/03/10(金) 15:22:08}
は
a( ... )
{
}
に直すべき?
学生のころ見た本で前者のクセがついてしまった。
0150デフォルトの名無しさん
2006/03/10(金) 15:23:550151デフォルトの名無しさん
2006/03/10(金) 15:36:59> >if(b != false)
> と書くのは禁止出来ない。
それはまずいね。
bがboolなら(b != false)もまた同じくboolなんだから。
boolのbに対して != false の比較が必要なら、
(b != false)に対しても同じく必要。
だから
if((b != false) != false)
と書きたいところだが、これでもまだ足りない。
なぜなら((b != false) != false)もまたboolだからだ。
もし
if(b) // (1)
よりも、
if(b != false) // (2)
の方が良いならば、
if(((((b != false) != false) != false) != false) != false) // (3)
こちらの方がもっと良いということになる。
もちろん
if(x == y)
より
if((x == y) != false)
の方が良いだろう。
誰が賛成できるかな。
もし(3)を禁止するなら、同じ理由で(2)は禁止になる。
0152デフォルトの名無しさん
2006/03/10(金) 15:39:120153デフォルトの名無しさん
2006/03/10(金) 15:40:530154デフォルトの名無しさん
2006/03/10(金) 15:45:02> しかしだな、
> >if(b == true)
> は禁止。
これは意味のあるコードだから禁止できない。
bがboolではなく、3値の状態 (false,true,unknown?) を確保する
クラスオブジェクトに変更となったとき、
bool operator==(bool)メソッドを用意しておけば、
「if(b == true)」記述は有意義だからな。
0155デフォルトの名無しさん
2006/03/10(金) 15:46:35オレは画面が80x24じゃなくなって行を多く表示できるようになってからは
後者のほうだな。Windows3.1の頃のプログラムの本からの影響だが。
0156デフォルトの名無しさん
2006/03/10(金) 15:48:39俺はエディタを横長画面で使うから前者だな。
0157デフォルトの名無しさん
2006/03/10(金) 15:50:470158デフォルトの名無しさん
2006/03/10(金) 15:51:14>bがboolではなく、3値の状態 (false,true,unknown?) を確保する
トリッキーなネーミング超禁止!!!!!!!!!
3つの状態なら、cond_false,cond_true,cond_unknownくらいにしとけ。
boolに新たな値を足すのは超販促ワザ。
0159デフォルトの名無しさん
2006/03/10(金) 15:52:360160デフォルトの名無しさん
2006/03/10(金) 15:55:44true, false, nilの状態確保は良くあることね
0161デフォルトの名無しさん
2006/03/10(金) 15:56:330162デフォルトの名無しさん
2006/03/10(金) 15:58:070163デフォルトの名無しさん
2006/03/10(金) 16:00:37なんでRubyってこうやって好き嫌いが激しく分かれるんだよ。
Perlは「好きだけどあまり使わない」「嫌いだけど使う」って
曖昧な奴がいっぱいいるじゃないか。Rubyへの好き嫌いは明確過ぎるぞ。
0164デフォルトの名無しさん
2006/03/10(金) 16:03:140165デフォルトの名無しさん
2006/03/10(金) 16:45:28ぱっと見て「頼むからお前は何もするな」と思うコード
0166デフォルトの名無しさん
2006/03/10(金) 16:50:09DBのカラムだとNULLが絡んでくるの分かるけど、
逆に真偽値カラムは初期値入れてNULL無くせ!、と。
0167デフォルトの名無しさん
2006/03/10(金) 16:53:17もはや3値は時代の趨勢といわざるを得ない。
0168デフォルトの名無しさん
2006/03/10(金) 16:55:37カス
0169デフォルトの名無しさん
2006/03/10(金) 17:03:44でいいじゃん。
0170デフォルトの名無しさん
2006/03/10(金) 17:20:06>C#のboolもnullable出来るしな。
既存のC/C++ライブラリを異色作業に困るわこれ。
過去のライブラリは使えないは、移植作業を邪魔するわで、ちょーさいあく。
0171デフォルトの名無しさん
2006/03/10(金) 17:23:360172デフォルトの名無しさん
2006/03/10(金) 20:48:020173デフォルトの名無しさん
NGNG4桁と8桁がまじってるのとかはともかく、数行だけ3桁が混じってるとか。
0174デフォルトの名無しさん
2006/03/10(金) 20:53:19それは上手い下手じゃないから好きなほうでいいんじゃない?
俺は会社ではプロジェクトのルールに従ってる
家ではネットで拾ってきた各言語の一般的なルールに従ってる
0175デフォルトの名無しさん
2006/03/10(金) 20:55:20・別人が書いた
・適当なところからコピペした
0176デフォルトの名無しさん
2006/03/10(金) 21:32:06普通は、NULLも入れられるboolを使うな。
0177デフォルトの名無しさん
2006/03/10(金) 21:32:31C++で書いたようなライブラリをC#で使う気にはなれんがな。
アセンブラからC/C++に移植するとコードが簡潔にできるように、
C/C++からC#へ移植するとかなりコードが簡潔に書ける。
C/C++のコードをそのままC#でコンパイルだなんて、
Cでインラインアセンブラ使って書いてるようなもんだ。
0178デフォルトの名無しさん
2006/03/10(金) 21:37:02「使うな」が「使ってはダメだ」と禁止しているようにも「使うよね」と自分の意見を語っているようにも解釈できる
文脈で多態するような単語は使うな
0179デフォルトの名無しさん
2006/03/10(金) 21:41:20ここで言ってるスタイルはあんま参考にしないほうがいいかも。
0180デフォルトの名無しさん
NGNG会社の先輩のソースとかは、参考にしないように。
0181デフォルトの名無しさん
2006/03/10(金) 22:00:470182デフォルトの名無しさん
NGNGまともな本なの?
0183デフォルトの名無しさん
2006/03/10(金) 22:59:250184デフォルトの名無しさん
2006/03/10(金) 23:54:44「自分用のインデントプログラム作れば?」でおk
0185デフォルトの名無しさん
2006/03/10(金) 23:56:410186デフォルトの名無しさん
2006/03/11(土) 00:05:13つりかよ。
0187デフォルトの名無しさん
2006/03/11(土) 00:07:01↓
0188デフォルトの名無しさん
2006/03/11(土) 00:08:40googleで見れるかな?
0189デフォルトの名無しさん
2006/03/11(土) 00:10:430190デフォルトの名無しさん
2006/03/11(土) 00:23:28freeする必要がないのと同様、論争を見る必要もない。
0191デフォルトの名無しさん
2006/03/11(土) 00:38:420192デフォルトの名無しさん
2006/03/11(土) 00:51:490193デフォルトの名無しさん
2006/03/11(土) 01:11:16/* 0123456789 */
strcat(str, " "); /* 1 */
strcat(str, " "); /* 2 */
:
strcat(str, " "); /* 9 */
strcat(str, " "); /* 10 */
0194デフォルトの名無しさん
2006/03/11(土) 01:35:55変数名、構造体にhogeInfo、hogeData
0195デフォルトの名無しさん
2006/03/11(土) 01:37:32まじめにすべて書き下してるから、一関数1000行とかいってしまってたり。
0196193
2006/03/11(土) 01:44:37わざわざ回数や桁数をコメントで入れてるから、本人は丁寧にやってるつもりなんだろうな、って所。
0197デフォルトの名無しさん
2006/03/11(土) 02:00:10これはひどい(わらい
memset(str, ' ', 100);
str[100] = '\0';
2行で書けるじゃん。
0198デフォルトの名無しさん
2006/03/11(土) 02:02:47パフォーマンス悪そう。
0199デフォルトの名無しさん
2006/03/11(土) 02:11:37それは・・・ところによっては優秀なコードと判断される・・・
1対1に対応していないと気に入らない人って
未だにいるんだな、これが
0200デフォルトの名無しさん
2006/03/11(土) 02:14:26厨房のまとまったコード晒して添削した方がよっぽど参考になるけど
そこまでして実のあるスレにしようと思う奴なんて誰もいないしな。
0201デフォルトの名無しさん
2006/03/11(土) 02:14:570202デフォルトの名無しさん
2006/03/11(土) 02:19:540203デフォルトの名無しさん
2006/03/11(土) 02:20:54sprintf()なら一行
0204デフォルトの名無しさん
2006/03/11(土) 02:28:570205デフォルトの名無しさん
2006/03/11(土) 02:36:35C#のboolとnullable boolは別物
0206デフォルトの名無しさん
2006/03/11(土) 05:30:40{
int a,b,c,d,e,f,g;
void setABCDEFG(int a,int b,int c,int d,int e,int f,int g)
{
this->a = a;
this->b = b;
this->c = c;
this->d = d;
this->e = e;
this->f = f;
this->g = g;
}
};
0207デフォルトの名無しさん
2006/03/11(土) 06:41:03char kore-nanikana =
" ��"
"�凵寐�"
" ▽";
// ヒント: 太陽じゃない
0208デフォルトの名無しさん
2006/03/11(土) 11:38:51マイナスってくっつけます?
i = j - 4;
と書いているなら、
k = - 1;
とするべきでようか?
0209デフォルトの名無しさん
2006/03/11(土) 12:12:140210デフォルトの名無しさん
2006/03/11(土) 12:12:17単項演算子のマイナスは、くっつける。
k = -1;
それ以外は、くっつけない。
0211デフォルトの名無しさん
2006/03/11(土) 12:13:29"- 1"なら何か書き忘れたのかと思う。
0212デフォルトの名無しさん
2006/03/11(土) 13:56:24こういうコード書く奴は反省正座
演算子は密着させるなって何度言ったら(ry
0213デフォルトの名無しさん
2006/03/11(土) 14:09:17というか、こんなの好み以外なんでもないだろ。
コーディング規約で既定されてるのに従ってない、とかじゃない限り、
反省正座とか、意味不明な否定をされるいわれはない。
0214デフォルトの名無しさん
2006/03/11(土) 14:16:250215デフォルトの名無しさん
2006/03/11(土) 14:23:34そういうコード書く奴に限って213みたいに自己中な逆ギレするから困る
0216デフォルトの名無しさん
2006/03/11(土) 14:24:590217デフォルトの名無しさん
2006/03/11(土) 14:29:35thread . level . down () ;
0218デフォルトの名無しさん
2006/03/11(土) 14:32:23なぜそんな事を言う前にそれをやらないんだ?
それともそんな簡単な事も出来ないのに、そんな大口叩いてるのか?
だったら、すみません。私の読み易いように整形して下さいと、頭を垂れろ。
ホワイトデーにはまともな貢物の一つもよこしやがれ
0219デフォルトの名無しさん
2006/03/11(土) 14:32:54制御文のカッコをくっつけるとか、ぱっと見た目、へたくそに
見えるね。
0220デフォルトの名無しさん
2006/03/11(土) 14:37:21誰か早く回収するんだ
0221デフォルトの名無しさん
2006/03/11(土) 14:43:00けっこう売れてるらしい某初心者向けの本は、
↑みたいに、<>をくっつけて書いてるらいいじゃん。(見てないけど)
ほんとみに、こういうのやめて欲しい。
0222デフォルトの名無しさん
2006/03/11(土) 14:43:470223デフォルトの名無しさん
2006/03/11(土) 14:46:130224デフォルトの名無しさん
2006/03/11(土) 14:46:480225デフォルトの名無しさん
2006/03/11(土) 14:49:070226デフォルトの名無しさん
2006/03/11(土) 15:48:47それがぱっと見てヘタだと思うコードなのか?
人による好みの問題で、その人がうまいかヘタかは全然関係ない気が駿河。
0227デフォルトの名無しさん
2006/03/11(土) 16:00:47前に書いた俺のコードにこんな感じのものがあった。
間に何があったのか思い出せない。
幸いなのは自分が勉強に作ったものだから外への影響はないということ
0228デフォルトの名無しさん
2006/03/11(土) 16:01:32コーディングがきれいでも、汚いソースなんて腐るほどあるからなぁ。
0229デフォルトの名無しさん
2006/03/11(土) 16:07:02所詮それも慣れの問題。好みでしかない。
オレは逆にスペースがあるとキモイいもの。
間が抜けた、マヌケコードに見える。
しかし、それを他人の力量の判断材料にはしない。
所詮宗教問題だからだ。
そんなことも分かんない奴の力量は低いと判断するけどね。
0230デフォルトの名無しさん
2006/03/11(土) 16:10:33いや、そういうコードを書く人間が、まともな本やソース、環境で勉強してるとは思えない。
むしろ、変な書き方をして、本人だけはいい書き方をしてると固く信じてるってパターンじゃ
ないかと予想する。
ソース開いて、そういうコードが最初に目に入ったら。
0231デフォルトの名無しさん
2006/03/11(土) 16:13:56> 所詮宗教問題だからだ。
スキルの高い人たちの間でも、意見の分かれるスタイルの問題はあるけど、
二項演算子の両側とかカンマの後ろを空けるとか、そのあたりで意見が分かれてるのは
見たことない。
0232デフォルトの名無しさん
2006/03/11(土) 16:14:50「まとも」が何かによるけどな。
コーディングスタイルの流行なんて、すぐ変わるものだし。
0233デフォルトの名無しさん
2006/03/11(土) 16:19:34if(){
}
みたいなキモいコードブロック書いてるよな。
タブの代わりにスペース2個とか。視ねって。
0234デフォルトの名無しさん
2006/03/11(土) 16:20:48#includeの後にスペース入れるか入れないかなんて、流行すたりはないよ。
0235デフォルトの名無しさん
2006/03/11(土) 16:21:320236デフォルトの名無しさん
2006/03/11(土) 16:25:090237デフォルトの名無しさん
2006/03/11(土) 16:43:440238デフォルトの名無しさん
2006/03/11(土) 16:49:58そらどうでもいいからな。
0239デフォルトの名無しさん
2006/03/11(土) 16:58:38#include<hoge.h>
はくっつけたらダメなの?
逆に、離したら何がいいの?
論理的に説明できずに、感覚的にキモイとか言ったら低脳認定。
0240デフォルトの名無しさん
2006/03/11(土) 16:59:47エラー処理かかないのと、スタイルは関係ない。
ただの言いがかりをつけるやつは人としてダメだな
0241デフォルトの名無しさん
2006/03/11(土) 17:33:29いや、議論するまでもなく意見が一致するから。
二項演算子の両脇を詰めろってヤツが混じってたら、かなり紛糾すると思うけど。
0242デフォルトの名無しさん
2006/03/11(土) 17:34:27瑣末だと思ってるあたりがダメ。
0243デフォルトの名無しさん
2006/03/11(土) 17:39:58自分のスタイルを他人に強要して、詰めろ、というバカが居たらそうだろう。
同様に、自分のスタイルを他人に強要して、空けろ、とかいうバカが居ても紛糾するよ。
このスレのように。
0244デフォルトの名無しさん
2006/03/11(土) 17:47:11これが瑣末だと思えない時点で、プログラマ失格。
多分姑になるといいよ。嫁いびり上手そう。
0245デフォルトの名無しさん
2006/03/11(土) 17:49:30「Cプログラミング診断室」を引用するもんだけど
もうそういう時代じゃない?
0246デフォルトの名無しさん
2006/03/11(土) 17:49:53そういう機械で出来るような部分に価値を見出してもしょうがないぞ
0247デフォルトの名無しさん
2006/03/11(土) 17:52:05特定のスタイルに固執することに価値はない。
それがわからないのは趣味グラマだけだろう。
0248デフォルトの名無しさん
2006/03/11(土) 17:54:03元ソースのコーディングスタイル(変数名等の付け方も含む)を
踏襲するのが普通だと思うんだが…。(つまり、スタイルを気にしてない)
職業PGだって、規定があればそれに従うのみだろ…。
ここでキモイとかいってるやつは行数を増やすことだけに熱心な
アホ会社に勤めるカス職業PGか?
0249デフォルトの名無しさん
2006/03/11(土) 17:56:14べつに行数で金取るわけじゃねぇし。
ま、行数カウントして試験計画に反映することは良くあるけどな。
0250デフォルトの名無しさん
2006/03/11(土) 17:57:35> 自分のスタイルを他人に強要して、詰めろ、というバカが居たらそうだろう。
数人で作業をやるとか、コーディングルールを決めるような状況ならある程度「強要」はあるだろ。
そういう状況でも、二項演算子の両脇を開けるとか、カンマの後ろを空けるとかは
常識のレベルだから、紛糾なんてない。
あまりに常識過ぎて、言及しないこともあるけど。
(まともなところならね)
0251デフォルトの名無しさん
2006/03/11(土) 18:00:15単にまともなプログラマーなら、こう書くって話だし。
0252デフォルトの名無しさん
2006/03/11(土) 18:01:33そもそもコーディングスタイル決める意味ある?
0253デフォルトの名無しさん
2006/03/11(土) 18:03:390254デフォルトの名無しさん
2006/03/11(土) 18:04:430255デフォルトの名無しさん
2006/03/11(土) 18:04:450256デフォルトの名無しさん
2006/03/11(土) 18:06:040257デフォルトの名無しさん
2006/03/11(土) 18:06:46訂正:おまえらは人に読まれても恥ずかしくないコードを書くために、どんなことに気をつけている?
0258デフォルトの名無しさん
2006/03/11(土) 18:06:460259デフォルトの名無しさん
2006/03/11(土) 18:08:430260デフォルトの名無しさん
2006/03/11(土) 18:09:33>>255
publicな関数やクラスは、doxygen相当のツールで拾えるドキュメントを必ず記述する。
privateも自明なの以外はつける。
関数内にコメントは記さない。
コメントがなくても自明なコードとなるようにする。
0261デフォルトの名無しさん
2006/03/11(土) 18:15:160262デフォルトの名無しさん
2006/03/11(土) 18:32:44二重に意味わかんね。
ソースを隠したところでasmでは(時間かかるけど)バレバレだしな。
0263デフォルトの名無しさん
2006/03/11(土) 18:46:26> 元ソースのコーディングスタイル(変数名等の付け方も含む)を
> 踏襲するのが普通だと思うんだが…。(つまり、スタイルを気にしてない)
それはまともなスタイルだからだろ。
二項演算子の両端を空けないポリシーで、世間で評価されてるオープンソース
のプロダクツとかある?
0264デフォルトの名無しさん
2006/03/11(土) 18:52:42そもそもオープンソースの作者ってのは変質者が多い。
露出狂とでも言うか
なかにはオープンソースを餌にしてこんなオナニーを見せて喜ぶ奴もいる
#define BEGIN {
#define END }
0265デフォルトの名無しさん
2006/03/11(土) 18:54:02色分けしてくれるエディタ使えば、演算子の前後に空白があるだの無いだの気にする必要もない事だろ
0266デフォルトの名無しさん
2006/03/11(土) 19:03:50君はgrepを知らんのか。それともオプソのソースが手元に一切ないのか。
それくらい調べればすぐにわかるだろう。
0267デフォルトの名無しさん
2006/03/11(土) 19:06:32議論というか、空白無いとダメなんだもん!君が喚いてるだけ。
皆、どうでもいいだろ、どうしても嫌ならツール使えよ、とやさしく諭してあげてる。
0268デフォルトの名無しさん
2006/03/11(土) 19:10:010269デフォルトの名無しさん
2006/03/11(土) 19:52:06それで「ヘタだなぁ」って思うやつが結構いるということは分かったから
0270デフォルトの名無しさん
2006/03/11(土) 20:16:08そんなことは、演算子の両脇を詰めるのがまともだと思ってる人に言ってください。
0271デフォルトの名無しさん
2006/03/11(土) 20:20:42けっこう多いっていうか、まともな人は、ほぼ全員へただなぁ、素人っぽいなあって思うんじゃない?
0272デフォルトの名無しさん
2006/03/11(土) 20:31:12> どうしても嫌ならツール使えよ、
変な書き方してる連中って、ツールも使ってないってことだろ?
0273デフォルトの名無しさん
2006/03/11(土) 20:37:50そうなの? 俺は変だなとは思うけどヘタとは思わない
同じソース中でバラバラだったら素人っぽいと思うけど
0274デフォルトの名無しさん
2006/03/11(土) 20:39:310275デフォルトの名無しさん
2006/03/11(土) 20:42:43・へた
・素人
・変
0276デフォルトの名無しさん
2006/03/11(土) 20:44:46何で平気でツール使えとか言えるのかがわからん。
責任感って物がないのか?
てか単項演算子の両端をあけないのって小さくて単純なプログラムしか組んだこと無いからだろ。
そりゃたしかに
n = n + m; とか
for(n = 0 ; n < MAX; n++)
みたいなんじゃぁ間抜けにみえるかもな。
0277デフォルトの名無しさん
2006/03/11(土) 20:44:50オレは2項演算子の両脇を詰めるのが自分のスタイルだと言ってるだけで、
まともとかとかそういう話はしてない。
仕事でコーディング規約でそうあるならそれに従うが、
そうでない以上、こんなのは好みの差にすぎない。ギャーギャー騒ぐことではない。
つーか、「まともな人」とか笑わせんなよ。
論理的な理由も示せず、感覚的にキモイって理由で
批判するなんて、まともな人間のすることじゃない。
0278デフォルトの名無しさん
2006/03/11(土) 20:44:57nnnesterJは元が*nix系の書き方なのに、
途中で変数名がM$お得意のb〜とか、i〜とか入ってきて
ヘタとかじゃなく非常識極まりないものになってる。
こんな状態になると、演算子で詰めるかどうかの議論なんてアホらしくなってくる。
0279デフォルトの名無しさん
2006/03/11(土) 20:47:23なるべく一緒に仕事をしたくない類の人間だな。
0280デフォルトの名無しさん
2006/03/11(土) 20:48:42コーディングスタイル以前に、まともな知識付けた方がいいのでは?
0281デフォルトの名無しさん
2006/03/11(土) 20:54:09延々とファビョってるのって213だろ
これだから腐女子は嫌なんだ
0282デフォルトの名無しさん
2006/03/11(土) 20:56:03お前の意見って、全部根拠ナシのただの主観だよなぁ。
そういう意見つて、そっくりそのまま逆に言い替えれるんだよなぁ。
空白があろうがなかろうがどうでもいい人って、けっこう多いっていうか、
まともな人は、ほぼ全員どうでもいいなぁって思うんじゃない?
こんな空白無いと「へただなぁ、素人っぽいなあって思う」人をへただなぁ、素人っぽいなあって思うんじゃない?
0283デフォルトの名無しさん
2006/03/11(土) 20:56:260284デフォルトの名無しさん
2006/03/11(土) 20:57:47書き込みせずにいられない人のほうがアレなんじゃないの?
0285デフォルトの名無しさん
2006/03/11(土) 20:59:13詰めて書く派はいないんだろ。
あとは何が何でもあけないと気がすまない派という痛い存在が
いるかどうかでないの。
そこんとこどうなの?
0286デフォルトの名無しさん
2006/03/11(土) 20:59:52いや、世間でそれなりに評価される本とか、プロダクツのコードで、
二項演算子の両脇を詰めてかいてるのってある?
0287デフォルトの名無しさん
2006/03/11(土) 21:03:11>>276
> n = n + m;
0288デフォルトの名無しさん
2006/03/11(土) 21:10:24今見てる、「Perlクックブック」は、
大体においてPerlのガイドラインの通り、演算子は空けているが、
空けていないところもある。
ま、重箱の隅をつつくなってことじゃね?
0289デフォルトの名無しさん
2006/03/11(土) 21:11:22>>266
まぁいいか。手元にあったオープンソース見てみた。
例えばこれは演算子の空白の数はアバウトな感じだけど。
http://www.codercorner.com/Opcode.htm
お前がなんて言いそうか大体想像つくなぁ。
0290デフォルトの名無しさん
2006/03/11(土) 21:16:15実に禿げな議論だ
0291デフォルトの名無しさん
2006/03/11(土) 21:23:160292デフォルトの名無しさん
2006/03/11(土) 21:24:55だからさ、読み辛いのは、それを読んでるオノレの問題だろ?
少なくともオレの問題じゃない。
オレはカラーで表示されるエディタで見てるから何の問題もないんだからさ。
オノレが読みづらいならそれは自分で解決すべき問題だ。
なんで責任感が無いなんてわけの判らん発言になるんだ?
0293デフォルトの名無しさん
2006/03/11(土) 21:31:03ああ、それは知らなかった。
0294デフォルトの名無しさん
2006/03/11(土) 21:31:56どっちかが妥協しないとな。
0295デフォルトの名無しさん
2006/03/11(土) 21:32:56ほんとに読み辛いと思うのは
http://pc8.2ch.net/test/read.cgi/tech/1141740363/35
この35からの質問者のような 書き方だ。
>
ある角度αで回転した四角形があります
左上角を(x,y)とします
上辺の中心を(x',y')とします
この中心をドラッグし移動するとマウスと上辺は交差する位置を維持します
下辺2点は固定です
この時いまマウスがいる座標を(x'',y'')とします
この座標と交差する上辺の左角の座標を求める計算式を提示してください
-----------------------------
言葉が足りない上、交差する位置 とか謎言葉がちりばめられた文章
まあでも、お客様からの文章からは、こんなものは序の口。
そっから真意を探り出してくるんだぞ。
演算子の左右に空白が無いとかで読み辛いとか、ホント笑っちゃうよ
0296デフォルトの名無しさん
2006/03/11(土) 21:37:02a*b + c*d
だよなぁ。
0297デフォルトの名無しさん
2006/03/11(土) 21:38:06演算子の両側のスペースなんて、その手の宗教論争とは違うだろよ。
「変数名は内容を表すようにつける」とか「サブルーチンは適切な単位に分ける」とか、
そういうレベルの話。
0298デフォルトの名無しさん
2006/03/11(土) 21:40:44スタイルなんかより設計が全てだな
一貫してるMFCやATLの読みにくいこと。
0299デフォルトの名無しさん
2006/03/11(土) 21:41:00そうだね。 演算子の両側のスペースなんて
「変数名は内容を表すようにつける」とか「サブルーチンは適切な単位に分ける」とか、
そういうレベルの話とは全く違って、全く意味の無い話だ。
演算子の両側にスペース入れるのは簡単なプログラムを作れば自動で出来るが
前者2つを自動でやるのは、現時点では不可能だし
それが出来るならプログラマなんて不要になってるだろう
0300デフォルトの名無しさん
2006/03/11(土) 21:41:410301デフォルトの名無しさん
2006/03/11(土) 21:42:43ツールで完全に自動でどうとでもなるものを、それらと同列に?マジかよ。
0302デフォルトの名無しさん
2006/03/11(土) 21:47:10プログラミングというのは >>295のような曖昧かつ漠然としたところから
「内容を適切な単位に分けて明確にしてそれに名前をつける」
という作業をする事であって
少なくとも、演算子の両端に空白を入れる事に必死になる事じゃないんだよ
0303デフォルトの名無しさん
2006/03/11(土) 21:47:46かってに整形すればいいって言ってるのと同じ思考なんだろうか。。。
0304デフォルトの名無しさん
2006/03/11(土) 21:48:56反論があるんなら、モゴモゴ言わずに、ちゃんと意見を言え。
ちんちん付いてるんだろ? しゃぶるぞ!
0305デフォルトの名無しさん
2006/03/11(土) 21:49:12> 少なくとも、演算子の両端に空白を入れる事に必死になる事じゃないんだよ
必死になってやるんじゃなくて、とくに意識しなくても当たり前にやるんだよな。
0306デフォルトの名無しさん
2006/03/11(土) 21:51:32読みやすいコードを書くように意識しろよ。
0307デフォルトの名無しさん
2006/03/11(土) 21:52:190308デフォルトの名無しさん
2006/03/11(土) 21:53:56逆もまたしかり。
0309デフォルトの名無しさん
2006/03/11(土) 21:59:000310デフォルトの名無しさん
2006/03/11(土) 21:59:33何が何でもあけないと気がすまない派
と
どうでもいい・気にしてない派
だけどな
0311デフォルトの名無しさん
2006/03/11(土) 22:01:280312デフォルトの名無しさん
2006/03/11(土) 22:01:55あなたが意識しなくても入れるというのはあなたの問題。
あなたが人のコードで空白を入れてないのがダメってのもあなたの問題。
そのコードを見て 下手だなと思うのもあなたの問題。
自分の問題をさも他人の問題のようにいわないでくれ
0313デフォルトの名無しさん
2006/03/11(土) 22:03:53ちがうでしょ
そういう対比じゃなくて、
何が何でもあけないとダメだとか、責任感が無いとか
それは違うでしょと。
0314デフォルトの名無しさん
2006/03/11(土) 22:04:03もっともっと少ないんじゃないの? (まともなのでは)
0315デフォルトの名無しさん
2006/03/11(土) 22:09:41・適度にあける。
・何が何でもくっつける。
・どうでもいい。
0316デフォルトの名無しさん
2006/03/11(土) 22:11:29x %= 8; でも x&=(8-1); でもいいけど x&=7; はチョッと嫌だなとか
10回のループを表現するのに
for(i=0;i<10;i++) ..... でも
for(i=01i<=10;i++) ..... でも いいけど
for( i = 0 ;i <= 9 ; i++ ) ..... はちょっとダメだとかは思うけど
空白が入ってる、入ってないが価値基準ってのはどうかと思うけどね
0317デフォルトの名無しさん
2006/03/11(土) 22:15:320318デフォルトの名無しさん
2006/03/11(土) 22:16:17#define _DIM 3 とかヘッダで定義して
for(i=0 ; i < _DIM;i++)... とか書くの 2とか4にする場合があるなら別だけど
for(i=0 ; i < 3 ; i++)... と 数字の3書いた方が何倍も読み易いのに
0319デフォルトの名無しさん
2006/03/11(土) 22:17:39このプログラムについてprintf下3つが理解できないので、どのような動きを
しているのか、解説をして頂きたいのですが、お願いします。
#include <stdio.h>
char *c[]={
"ENTER",
"NEW",
"POINT",
"FIRST"
};
char **cp[]={c+3,c+2,c+1,c};
char ***cpp=cp;
main()
{
printf("%s",**++cpp);
printf("%s ",*--*++cpp+3);
printf("%s",*cpp[-2]+3);
printf("%s\n",cpp[-1][-1]+1);
}
出力 POINTER STEW
0320デフォルトの名無しさん
2006/03/11(土) 22:20:48ヘタ以前に人格を疑うな…。
つーか、ポインタの宿題じゃねーの?
0321デフォルトの名無しさん
2006/03/11(土) 22:21:36> for(i=01;i<=10;i++) ..... でも いいけど
唐突に8進数でてくるのはどうかと
0322デフォルトの名無しさん
2006/03/11(土) 22:24:24ホント色別けしてくれるエディタは有難いね。 昔は2桁の8進数を間違って使ってなかなか気付かなかった
0323デフォルトの名無しさん
2006/03/11(土) 22:32:05else 節が多いと、なんか主張が弱いというか視点のハッキリしていない人の意見を聞いてるようでイライラする
あと、条件判断で && || を同じ行で使うのも、なんか下手っぽい
if( XXX && XXXX) 使うなら
if(XXX )
if(XXXX) と書く方がいい。 実際、 && || は良く間違って使われてる。
0324デフォルトの名無しさん
2006/03/11(土) 22:36:55> 10回のループを表現するのに
その三つの例は全部ダメだろ。やざとやってんのか?
0325デフォルトの名無しさん
2006/03/11(土) 22:38:42if( XXX && XXXX){
} else {
}
こう書きたいときは二段ifにするわけにはいかない。
>&& || は良く間違って使われてる
あまりにレベルが低いのを引き合いに出されてもな。
ああ、そういうスレか
0326デフォルトの名無しさん
2006/03/11(土) 22:40:090327デフォルトの名無しさん
2006/03/11(土) 22:41:01空白の有無よりも数値の意味を明確するほうが大事だと言いたいのかもしれんが、
統一されてないのはやっぱり問題だと思う。
特に ; の前後の空白が全く統一性がないのがあれだな。
プログラムでも英語の文法に従うとするなら、
句読点の前には空白を入れず後ろには空白を1つ入れることになる。
0328デフォルトの名無しさん
2006/03/11(土) 22:43:01だからそれ1個だけならいいよ。
一つの手続き内に そんなのが沢山あるとか
ダラダラ 入れ子にして るコードとか
それからチャンスがあるなら 他人のコードで バグ取りをする時は、 && || を使ってるとまず疑うといいよ
0329デフォルトの名無しさん
2006/03/11(土) 22:45:13&&はifをネストすればいいけど、||はどうしてるの?
0330デフォルトの名無しさん
2006/03/11(土) 22:45:35>>327 統一しないとダメな人は、自分でツールに通せばいいじゃない。
そんなの変換するの一瞬でしょ? そんなことに時間を使うのは勿体ないよ
0331デフォルトの名無しさん
2006/03/11(土) 22:47:36スタイル統一するのに、時間かかっちゃう人なのか。
0332デフォルトの名無しさん
2006/03/11(土) 22:49:42統一も何もしたことないしする必要も無いんだろ。
0333デフォルトの名無しさん
2006/03/11(土) 22:51:56そうだね。
スタイルの話をしてるわけじゃなかった。
0334デフォルトの名無しさん
2006/03/11(土) 22:53:05あんまりそういう事はない。
仕様書に かまたは をワザワザ書いてあれば || を使うけど
たとえば、どんな時に || を使う?
大抵は 事前に判断をまとめてしまうとか case A: case B: と重ねるとかするよ
0335デフォルトの名無しさん
2006/03/11(土) 22:57:31は、どう書き直すの?
0336デフォルトの名無しさん
2006/03/11(土) 22:58:10コボラー?
0337デフォルトの名無しさん
2006/03/11(土) 23:00:20ぱっと見て「ヘタだなぁ」と思う文章
0338デフォルトの名無しさん
2006/03/11(土) 23:01:57if (l->m_subTypeType == CTNCT_INT
|| (l->m_subTypeType == CTNCT_FLOAT
&& !intOnly))
だったら
switch( l->m_subTypeType ){
case CTNCT_INT :
case CTNCT_FLOAT:
if( 0== intOnly ) ....
}
こんな感じに別けると思うよ ! は勘違いしやすいから 自分は0== にしてる。 どっちでもいいけどね
0339デフォルトの名無しさん
2006/03/11(土) 23:03:34> }
キタ━━━━(゚∀゚)━━━━!!!!
0340デフォルトの名無しさん
2006/03/11(土) 23:03:360341デフォルトの名無しさん
2006/03/11(土) 23:03:52ふつうに、
if (code == 2 || code == 3)
if (error || out_count > XXX_MAX)
とか。
0342デフォルトの名無しさん
2006/03/11(土) 23:04:12値の範囲チェックとか。
0343デフォルトの名無しさん
2006/03/11(土) 23:06:14は?意味変わってるし。
ほーら、直感と外れる書き方するからバグ出してるよ。
あと、l->m_subTypeTypeがintじゃなかったら、どうすんの?
0344デフォルトの名無しさん
2006/03/11(土) 23:07:25&& exp3)
とか書いてるの見たら俺も一言言いたくなるが、そうでないならどうでもいいだろ。
そんなのプログラムの価値の1%も左右しない。
0345327
2006/03/11(土) 23:07:53いや、全然。
K&Rはなぜあんなスタイルなのかと考えた結果、
英語の文法に準拠して書いたのだろうと思い至っただけのことだが。
例えば、コンマ、セミコロンの前には空白を入れず後ろに入れる点とか、
括弧の内側には空白は入れない点とか・・・。
0346デフォルトの名無しさん
2006/03/11(土) 23:09:180347デフォルトの名無しさん
2006/03/11(土) 23:11:05そんなコードホントに書いてるの? ミスの元だよ。
1行目の if (code == 2 || code == 3) は
これなら即値を書いてるから後で変更もないし、このままでもいいと思うよ
>>338のようにcase 使わないかもしれないね
まさか if( (code & -2) ==2 ) とかはさすがに書かないな
2行目は
error || out_count > XXX_MAX
これはたぶんエラーをまとめているのだろうから、エラーとして一つのフラグにするべきだよ
0348デフォルトの名無しさん
2006/03/11(土) 23:13:07偉そうに言ってるけど、お前338でバグ出してるわけで。
ミスの元なのはどっちやら。
0349デフォルトの名無しさん
2006/03/11(土) 23:13:120350デフォルトの名無しさん
2006/03/11(土) 23:15:56ああゴメン。 読み間違ってたよ。
これなら m_subTypeType にもう一つ 増やすと思うよ。
CTNCT_INT
CTNCT_FLOAT
CTNCT_OnlyFLOAT
として 事前に intOnlyで 3つに別ける
0351デフォルトの名無しさん
2006/03/11(土) 23:17:55iniOnlyは見た目通り単なるローカル変数で、一緒に出来るもんじゃないけど。
あと、intじゃなかったらどうすんの?答えろよ。
0352デフォルトの名無しさん
2006/03/11(土) 23:18:04はは、だからオレは|| && は使わないの。
ましてやネストなんてしないわけ
だからミスするんじゃないか。
0353デフォルトの名無しさん
2006/03/11(土) 23:18:050354デフォルトの名無しさん
2006/03/11(土) 23:19:39バグの元だからmallocとか使わないという人みたい。
0355デフォルトの名無しさん
2006/03/11(土) 23:22:07だから、チャント仕様を書いてくれよ。
どういう時に || を使うの? って聞いて、コード直せってのは違うだろ?
こんなコードは、オレは書かないんだから判らないんだよ。
ましてや == 使ってて float とか使うとは思いもしないわけで
この関数はどういう条件なわけ?
0356デフォルトの名無しさん
2006/03/11(土) 23:23:32そりゃ、mallocは当然ラップしてから使うよ
0357デフォルトの名無しさん
2006/03/11(土) 23:25:430358デフォルトの名無しさん
2006/03/11(土) 23:29:00l->m_subTypeType は列挙型で
CTNCT_INT
CTNCT_FLOAT
その他がある。
CTNCT_INT かまたは、 intOnly というローカル変数が0でかつ CTNCT_FLOAT の時は・・・・・
というような仕様なら、前にも書いた通り、その通り書くよ。
自分の設計なら
CTNCT_INT
CTNCT_FLOAT
CTNCT_OnlyFLOAT
の3つの条件して渡すよ
0359デフォルトの名無しさん
2006/03/11(土) 23:29:07> そんなコードホントに書いてるの? ミスの元だよ。
信頼性が高いといわれているソフトでも同じようなコードが散見するんで、
問題ないでしょ。
0360デフォルトの名無しさん
2006/03/11(土) 23:29:41じゃあこんなのはどうすんの?
仕様は見たまんまで。
Window* p=getWindow();
if(p == &topWindow || (p == &bottomWindow && p->visible)){
}
0361デフォルトの名無しさん
2006/03/11(土) 23:31:47おもしろいですね。
if( intOnly == 0 ){
ではなく、
if (intOnly == 0) {
とカッコの外側にスペースを入れるなど、まさにそうかもしれませんね。
0362デフォルトの名無しさん
2006/03/11(土) 23:34:30勝手に変な型をふやすなよ
0363デフォルトの名無しさん
2006/03/11(土) 23:35:51上の書き方で書けとか言われたら個人的にはサブイボ出る
0364デフォルトの名無しさん
2006/03/11(土) 23:35:52(p == &bottomWindow && p->visible)) visibleであって bottomWindow
|| (p == &topWindow ) かまたは topWindow である場合
だね?
これがそういう仕様なら、この通りかく。 それは仕様書に従うべきだから。
で自分の設計なら、
この処理をしなければいけない理由があって、その状態だから、この処理をするのだから
p のクラスに状態フラグを入れてしまう。
0365デフォルトの名無しさん
2006/03/11(土) 23:38:07>>338とか?
0366デフォルトの名無しさん
2006/03/11(土) 23:40:45?
0367デフォルトの名無しさん
2006/03/11(土) 23:43:13そこはそれに従ったのだと思う。
0368デフォルトの名無しさん
2006/03/11(土) 23:45:17状態フラグを導入する?そっちのがヘタっぽい気が。
自分はそういう状態フラグの周辺でバグは出やすいと認識してる。
0369デフォルトの名無しさん
2006/03/11(土) 23:47:40で自分の設計ならの場合は
結局メンバをstatusHoge を増やして、
topWindow.statusHoge=true;
bottomWindow.statusHoge=bottomWindow.visible;
みたいな処理があって・・・・
Window* p=getWindow();
if(p->statusHoge){
}
ね。 こっちがすっきりするでしょ?
0370デフォルトの名無しさん
2006/03/11(土) 23:48:54俺が見た例
・malloc()禁止
配列にサイズチェックなしでデータをためていくようなコードが当たり前のようにあるプロジェクトなのに。
(逆にそういうレベルだからmalloc禁止か?)
・MFCは使っているのにCStringは禁止
理由はメモリリークするからというので、どういう操作でメモリリークを起こすか質問したら、
「わからない先輩にそうきいた」と。
・詳細は忘れたけどVBでテキストが変更されるときに飛んでくるイベントは使用禁止
理由はバグるから
0371デフォルトの名無しさん
2006/03/11(土) 23:49:21・2項演算子はスペースを入れる。
・if(){とかかないで{は次の行にする
・if () のように括弧の前にスペース入れない。
0372デフォルトの名無しさん
2006/03/11(土) 23:49:40やだ
0373デフォルトの名無しさん
2006/03/11(土) 23:49:47釣り?
0374デフォルトの名無しさん
2006/03/11(土) 23:51:05だぁめぇ〜
0375デフォルトの名無しさん
2006/03/11(土) 23:52:11if ()は譲れない
0376デフォルトの名無しさん
2006/03/11(土) 23:52:20状態といっても、ようするにコレ一部でも見えてる場合はって感じの場合なんでしょ?
だったら、そういう状態を持っているのが普通だと思うのだけど?
0377デフォルトの名無しさん
2006/03/11(土) 23:52:330378デフォルトの名無しさん
2006/03/11(土) 23:52:49悪い、ちょっと書き間違えた。
topWindowとbottomWindowは実体じゃなくて、ポインタ変数で、
ウインドウの関係が変われば書き換わるんだよ。
その場合、お前の設計はどうなる?
0379デフォルトの名無しさん
2006/03/11(土) 23:55:16好きなスタイルでコーディングできるから、ヘタクソが分かっちゃうんでしょ。
0380デフォルトの名無しさん
2006/03/11(土) 23:56:18そうなら、なおさら、top/bottom の位置関係はオブジェクト側で持っているべきだと思う
ポインタで比較するのはあんまりしない。
0381デフォルトの名無しさん
2006/03/11(土) 23:58:08設定によって
if()
と書かれたコードでも
if ()
と表示するわけだが(もちろん、その逆も)。
0382デフォルトの名無しさん
2006/03/11(土) 23:58:40たぶん top/bottomはZ軸 オーダの事で、リストのような構造を辿るというような設計なんでしょ?
でtopにする場合にリストの先頭につなぎなおす筈だから、その処理で
先頭から順にメッセージを送って、それぞれ状態を作り直せばいいじゃない
0383デフォルトの名無しさん
2006/03/11(土) 23:59:12K&Rだとキャストの後ろも
d = (double) hoge;
みたいにスペースが入ってるけどそれも同じ理由なのかね?
0384デフォルトの名無しさん
2006/03/11(土) 23:59:37こいつのやった仕事、信用できねーと思う。
0385デフォルトの名無しさん
2006/03/12(日) 00:01:19オブジェクトに相対的な位置関係情報を持たせるのはあまり上手い設計じゃないな。
自分の相対的な位置を知るためには、他のオブジェクトの位置も知らないといけないということだから。
0386デフォルトの名無しさん
2006/03/12(日) 00:02:57if(XXXX) と書く奴はヘタだなって思う。
&& 演算子知らないのかよって感じ。
あと ||を避けるために変な仕様にする本末転倒なコード見たら張り倒すね。
0387デフォルトの名無しさん
2006/03/12(日) 00:06:51確かにそうだね。 では GetStatusHoge() とメソッドにしておこう。
bool window::GetStatusHoge(){
if(this->IsTopWindow() ) return ture;
if(this->IsBottomWindow() ) return visible;
}
こんな感じかな
0388デフォルトの名無しさん
2006/03/12(日) 00:08:13Window* p=getWindow();
if(p->statusHoge){
...
0389デフォルトの名無しさん
2006/03/12(日) 00:09:250390デフォルトの名無しさん
2006/03/12(日) 00:11:36いや、
if(this==topWindow )
と書きかけたけど、topかどうかを知る方法はメソッドとして、
後で変更出来るべきだと思い直したから 中途半端な書き方になった
スマン
0391デフォルトの名無しさん
2006/03/12(日) 00:12:39bool window::GetStatusHoge(){
return this->IsTopWindow() || (this->IsBottomWindow() && visible);
}
>>387と比べて、何がしたいか意図が明確。
0392デフォルトの名無しさん
2006/03/12(日) 00:17:34否定はしないけど、
この仕様、
ゴメン bottomの場合って言うのは間違いで、top以外なら visibleだけで処理してよ
え? topを特別にする理由? だからtopなら無からずvisibleだからだよ。 他の窓に隠れないだろ?
だから、 visibleは見えてる部分があるかどうかだよ。
え? visibleだけでいい? まあそうだね
0393デフォルトの名無しさん
2006/03/12(日) 00:20:59自然に読み下せていいと思うけどなぁ
英語も嫌いなんだろうなぁ
0394デフォルトの名無しさん
2006/03/12(日) 00:25:37というか単純な事を複雑にしたがるのが嫌ってのが大きいかもしれないね
&& || が多い人は、
妙にくどいし、重複を厭わない
不思議な事に & | ^ を使って短く書いたコードになぜか拒否反応がある事が多い。
0395デフォルトの名無しさん
2006/03/12(日) 00:25:43>ゴメン bottomの場合って言うのは間違いで、top以外なら visibleだけで処理してよ
>え? topを特別にする理由? だからtopなら無からずvisibleだからだよ。 他の窓に隠れないだろ?
>だから、 visibleは見えてる部分があるかどうかだよ。
意味不明。というかアホすぎ。
top以外なら?勝手に仕様を脳内変更だよ。
お前こう言ってただろ。
>364
>visibleであって bottomWindow かまたは topWindow である場合
0396デフォルトの名無しさん
2006/03/12(日) 00:26:21>というか単純な事を複雑にしたがるのが嫌ってのが大きいかもしれないね
お前だドアホ!
0397デフォルトの名無しさん
2006/03/12(日) 00:30:04>if(p == &topWindow || (p == &bottomWindow && p->visible)){
オブジェクトの外側で ヘタな事やってるね
OOPなら メッセージを投げなさいな
0398デフォルトの名無しさん
2006/03/12(日) 00:31:31( (visibleであって bottomWindow ) かまたは topWindow ) である場合でしょ?
だから、この条件って何なのよ? その仕様をはっきりさせて
たぶんもっと簡単な解決法があるから
0399デフォルトの名無しさん
2006/03/12(日) 00:33:24oopなんて一言も言ってないけど。
あくまで || と && をどうやって無くすつもりかのサンプルとして書いたもので、
最初は単純なCのつもりで書いてるし。
0400デフォルトの名無しさん
2006/03/12(日) 00:33:27自分のスタイルを確立してしかも他人に対してそれを主張するのは
他人の書いたコードをうんざりするほど読み込んでからにした方が
おそらく変に偏らずにすむということだ。
0401デフォルトの名無しさん
2006/03/12(日) 00:37:43ぱっと見て「ヘタだなぁ」と思う文章
0402デフォルトの名無しさん
2006/03/12(日) 00:38:38どうやって無くすかより、
>>360みたいなコードを書く場合は
それが自分の設計なら、必要かどうかを先に検討した方がいいよ
先頭か (最後尾で表示オン) って妙な条件でしょ?
0403デフォルトの名無しさん
2006/03/12(日) 00:39:25有名なプロダクトのソースや本をかいつまんで読むだけで、はっきり
するようなレベル。
0404デフォルトの名無しさん
2006/03/12(日) 00:40:36だから条件は、ウインドウがトップウインドウ、
もしくは、ボトムウインドウでvisibleな場合だけだって。
その場合にアラーム鳴らしたりすんだよ。
0405デフォルトの名無しさん
2006/03/12(日) 00:43:54お前、if(l->m_subTypeType == CTNCT_INT || (l->m_subTypeType == CTNCT_FLOAT && !intOnly))
は||をムリヤリ無くそうと、↓のコードに改悪したくせに。
switch( l->m_subTypeType ){
case CTNCT_INT :
case CTNCT_FLOAT:
if( 0== intOnly ) ....
}
ポインタはswitchに直せないからって、主張微妙に修正しやがって。まったく。
0406デフォルトの名無しさん
2006/03/12(日) 00:49:35議論というか趣味の押し付け合いだな。
しかも題材も捏造したコードでなぜゆえにこんなに必死になってるんだ。
0407デフォルトの名無しさん
2006/03/12(日) 00:52:13本の名前あげてみて
0408デフォルトの名無しさん
2006/03/12(日) 00:53:580409デフォルトの名無しさん
2006/03/12(日) 00:54:17わかった。
ようするにトップなら無条件で、2番目なんて興味なし、でもイケメンならビリも可愛いいから喰っちゃうわよと。
こういう事?
なら、if( IsCool(p) ) {. .. } でいいじゃない。
IsCool(window * p){
if(p==トップ) return もちろん;
if(p->いけめん) //なら
if(p==ビリ) return OK;
}
これで判り易いでしょ?
0410デフォルトの名無しさん
2006/03/12(日) 00:57:01だから、それ、仕様をハッキリしてくれたら、もっと上手な方法教えたげるよ
0411デフォルトの名無しさん
2006/03/12(日) 00:57:11case CTNCT_FLOAT:
if( 0 == intOnly ){
case CTNCT_INT:
...;
}
break;
}
0412デフォルトの名無しさん
2006/03/12(日) 01:01:52・Cの文字列はmemset()で0で埋める
・#include と <・・・>はくっつけて書く
・二項演算子の両脇はあけない
・&&と||は使わない
こういうことを薦めている本を教えてください。
0413デフォルトの名無しさん
2006/03/12(日) 01:03:49int f=1<<->m_subTypeType;
f &= (1<<CTNCT_FLOAT) | (1<<CTNCT_INT);
f &= (0==intOnly) << CTNCT_INT;
if(f){ ... }
0414デフォルトの名無しさん
2006/03/12(日) 01:12:37isCool関数内で&&,||演算子を使わない理由がわからん。
お前は結局、&&と||を使わなくてもなんとかけることを示してるにすぎない。
そりゃ、使わなくても書けることは分かってる。
しかし、どう見ても使わないより上手くかけてるとは言いがたい。
それではお前の 「||を使う奴はヘタ」という主張を通せない。
0415デフォルトの名無しさん
2006/03/12(日) 01:14:59そういうCTNCT_FLOATが32以上の可能性を考慮しないアホコード晒して、何が楽しいの?
0416デフォルトの名無しさん
2006/03/12(日) 01:30:15まあ、どっちでもコストは同じだとは思うよ
||も内部では条件分岐だしね。
でも、>>409のように書けばデバッグし易いメリットがある
ブレークポイントも仕掛けられるんだしね
トレース実行で、どっちの条件で落ちたか確認するのも容易だ
トレース実行すれば体感的に動作が判る=身につき易いという事
0417デフォルトの名無しさん
2006/03/12(日) 01:34:51論理型以外も返せるという事
こんな関数を沢山作るのが嫌なら
pascalの集合型のような方式で条件を作って返すようにすれば、and or 表方式で
簡単に条件の差し替えを実行中にも出来るように出来る
ブザーを鳴らしたい条件が後から変更されてもコードを直さないで
その場で iniファイルの設定で修正できるわけさ
0418デフォルトの名無しさん
2006/03/12(日) 01:47:29結局 ||,&&を使う奴はヘタという対した理由は無しと。
0419デフォルトの名無しさん
2006/03/12(日) 01:57:32登山をするときには最も体の弱い人間にペースを合わせるのが鉄則。
同様に開発においても最も頭のよ(ry
0420デフォルトの名無しさん
2006/03/12(日) 01:59:33if(a)return;
if(b)return;
if(c)return;
が、デバッグしやすいから常に優れてるというのなら、
あらゆる二項演算子も同様の記述をすべきだ。
return a + b + c;
は
temp = a + b;
temp += c;
return temp;
しかし、普通は逆に見がたくなるケースが多い。
つまり、同様に &&,||もデバッグのしやすさをの方を追求することは、
常に優れている方法ではない。わかる?
0421デフォルトの名無しさん
2006/03/12(日) 01:59:460422デフォルトの名無しさん
2006/03/12(日) 02:03:11f= (p == &bottomWindow)<<2
+ (p == &topWindow)<<1
+ (0 != p -> visible )<<0
とすれば 0〜7の値となる。 さらに、
b= 1<<f;
とする。 値は1,2,4,...128 という値となる
条件判断部は
if(b&getSetting(__BEEP)){
}
てな感じにする
これで設定ファイルで この3つのどんな条件でも作れるという事になる
この場合、初期値は
f=0b011 3
f=0b100 4
f=0b101 5
f=0b110 6
f=0b111 7 で 0xF8 となる
ムダに複雑にしたように見えるかもしれないが
定型コードだから、書くのに手間はない。(というか、この設定値のGUIも作ってある)
実際、|| && を組み合わせるような条件は仕様変更の対象になり易い。
キミは修正してと言われたら帰ってビルドしなおしますと答える必要がある。
片方は、そのまま実行しながら条件を変更してみせられる。
0423デフォルトの名無しさん
2006/03/12(日) 02:03:320424デフォルトの名無しさん
2006/03/12(日) 02:03:48給料は変らない。 お勧めはしないけどね
0425デフォルトの名無しさん
2006/03/12(日) 02:07:53確かに 2項演算子を代入演算子に変換してしまうことは多いな。
見辛くてごめんね
0426デフォルトの名無しさん
2006/03/12(日) 02:11:11f = (p == &topWindow)<<2
+ (p == &bottomWindow)<<1
+ (0 != p -> visible )<<0 ;
だな
0427デフォルトの名無しさん
2006/03/12(日) 02:15:470428デフォルトの名無しさん
2006/03/12(日) 02:17:45そりゃ給料変わらないわな。
0429デフォルトの名無しさん
2006/03/12(日) 02:18:33でも、この方法なら、客先で気付けばその場でビルドせずに修正出来たわけだ
0430デフォルトの名無しさん
2006/03/12(日) 02:22:01チャンスがあるなら、それからチャンスがあるなら 自分のコードで バグ取りをする時は、 &&,||をムリに変更加えたところや<< + を使ってるとまず疑うといいよ
0431デフォルトの名無しさん
2006/03/12(日) 02:22:38おいおい、お前が間違えたのはソースの方だぞ。
0432デフォルトの名無しさん
2006/03/12(日) 02:22:52バカ丸出し。これをビルドせずに修正?出来るわけないだろ。
0433デフォルトの名無しさん
2006/03/12(日) 02:22:550434デフォルトの名無しさん
2006/03/12(日) 02:26:010435デフォルトの名無しさん
2006/03/12(日) 09:49:10memsetとかtrueとかしまいには、空白作法・・・・
pascal系のように綺麗でカッチリした言語にもう少し普及して欲しいねえ
っと言えば
#define BEGIN {
みたいなのを勧めるトンでもな奴と叩かれるんだろうが・・・・
0436デフォルトの名無しさん
2006/03/12(日) 10:09:36インデントにはスペースとタブどっちを使うかとか
やはり演算子の脇のスペースとか
大文字小文字の統一・混在とか
withはバグの元だから使うなとか
if文でbeginを書く位置とか、やっぱり色々あり過ぎね
0437デフォルトの名無しさん
2006/03/12(日) 10:13:17begin、endをどこに書いてもいいし、空白だってそうだ。
自己満足以外の理由・根拠なしに、他の流儀を掻き乱すから叩かれるんだ。
0438デフォルトの名無しさん
2006/03/12(日) 10:14:40読み込み時に俺俺スタイルに変換
保存時にプロジェクトスタイルに変換
0439デフォルトの名無しさん
2006/03/12(日) 10:16:08C並の速さで動作して、しかもGUIが簡単に作れる
ビシッと一発痺れる憧れるぅ!な言語まだ〜?
0440デフォルトの名無しさん
2006/03/12(日) 10:24:30インデントにはスペースとタブどっちを使うかとか ----それこそエディタ上でどっちでも変更出来る事だろう
やはり演算子の脇のスペースとか ---- 演算子が and or だから入れるべき所に入れない訳にはいかない
大文字小文字の統一・混在とか ----大文字小文字区別しない言語だから、比較的寛容かもね
withはバグの元だから使うなとか ------- with TStringList.Create do tray ..... finally free end; とか?
begin end を採用したおかげで、そんなにネスト出来ない事もあるのかもね
まあ何より pascalはborlandの拡張まで分割コンパイルが出来なかったから
多人数で共同制作という機会が無かったのだろうな
0441デフォルトの名無しさん
2006/03/12(日) 10:43:20それ以前に使っている人見たこと無いなw
0442デフォルトの名無しさん
2006/03/12(日) 10:45:55ソースコードにメタ情報入れて、
タブは何文字で、演算子の前後にはスペース入れてとか、
んで、エディタで読み込むときは、自分のスタイルに変更して表示、
書くときはメタ情報のもとのスタイルにもどして書く。
デザインと中身の分離だよ。そうしろよ。
0443デフォルトの名無しさん
2006/03/12(日) 10:54:05禿同
0444デフォルトの名無しさん
2006/03/12(日) 10:55:36いっそ、言語仕様をXML化して、CSSで表示するってのはどうだ?
0445デフォルトの名無しさん
2006/03/12(日) 11:01:22やっぱりまともなコーディングスタイルをみんなが実践しないと。
演算子をくっつけてファイルサイズを節約しているそこのあなた。
{をifと同じ行に押し込めて行数を節約しているあなたも。
反省したまえ。
0446デフォルトの名無しさん
2006/03/12(日) 11:02:04有り難いことにindentのオプションをソースの先頭にかいてあるものもある。
0447デフォルトの名無しさん
2006/03/12(日) 11:06:16memset(p, NULL, sizeof(p));
0448デフォルトの名無しさん
2006/03/12(日) 11:08:04じゃあそのまともなコーディングスタイルをお前が作ってくれ。
0449デフォルトの名無しさん
2006/03/12(日) 11:09:36余計な{}無しの一行コードでいいじゃん。
そうすりゃ、誰もが整形機能を持ったエディタで見るだろう。
0450デフォルトの名無しさん
2006/03/12(日) 11:33:47もう本当に、ふだん、いい加減にソース書いてるって感じの認識だな。
0451デフォルトの名無しさん
2006/03/12(日) 11:45:24> 結局ヘタというより、盛り上がるのはC/C++言語故の悩みってのが殆どだね。
いや、ヘタだろ。
ここで盛り上がってるのって、世間じゃ意見が分かれるようなことじゃないのに。
宗教論争になりがちなタイプの話題とはぜんぜん違う。
0452デフォルトの名無しさん
2006/03/12(日) 11:53:35試しに、素数を列挙するコード書いてみてよ。
この1レスに収まるという条件で、結果出力は必要ないから
0453デフォルトの名無しさん
2006/03/12(日) 12:01:50空白絶対空けないと許さないよ君がしつこくなければ盛り上がらなかったよ。
0454デフォルトの名無しさん
2006/03/12(日) 12:01:56そもそも、ふつーの人は興味無いしね。
0455デフォルトの名無しさん
2006/03/12(日) 12:02:540456デフォルトの名無しさん
2006/03/12(日) 12:03:520457デフォルトの名無しさん
2006/03/12(日) 12:12:30_ _ .' , .. ∧_∧
∧ _ - ― = ̄  ̄`:, .∴ ' ( )
, -'' ̄ __――=', ・,‘ r⌒> _/ /
/ -―  ̄ ̄  ̄"'" . ’ | y'⌒ ⌒i
/ ノ | / ノ |
/ , イ ) , ー' /´ヾ_ノ
/ _, \ / , ノ
| / \ `、 / / /
j / ヽ | / / ,'
/ ノ { | / /| |
/ / | (_ !、_/ / 〉
`、_〉 ー‐‐` |_/
0458デフォルトの名無しさん
2006/03/12(日) 12:20:57興味ないからじゃなくて、変な書き方する人がいないから。
(まともなところは)
0459デフォルトの名無しさん
2006/03/12(日) 12:28:46二項演算子の両側は空けるってルールを作っても誰も文句は言いません。
詰めるってルールを言うヤツが混じってたら、「なんで?」「それやめましょうよ」って
ことになる。
興味ないから、議論にならないってわけではない。
(あたりまえすぎて議論にならないってならそう)
0460デフォルトの名無しさん
2006/03/12(日) 12:46:32まともかどうかは主観に過ぎないのに
自分の「まとも」を押し付けようとするバカw
ちなみに、絶対に詰めろ、というバカは居ないので、
押し付けてるのは、絶対に空けろ、というバカだけです。
0461デフォルトの名無しさん
2006/03/12(日) 12:46:58ソース位、コンパイラの様におおらかに見る所と、
厳しく見る所のメリハリをつけれよ。
0462デフォルトの名無しさん
2006/03/12(日) 12:56:04詰めてないオプソのソースもあったろ。
お前がやーやーうるさいから出してやったのに、もう忘れたのか。
お前の脳味噌はニワトリ並か。
あと、半角の?のような特徴を残さない方がいいよ。
同一人物だってバレバレだから。
0463デフォルトの名無しさん
2006/03/12(日) 13:06:39なんで詰めるルールを作るんだ?
頭大丈夫か?
0464459
2006/03/12(日) 13:46:490465デフォルトの名無しさん
2006/03/12(日) 13:47:30スタイルなんて個人のもっとも読みやすい形で書くのが普通だろ?
それが、そのソースを書いた人にとって一番コーディングしやすいし、読みやすい。
人間一人一人、個性や好みが違うというのに、俺のスタイル以外はキモイ!って言うのは、
納豆が嫌いなやつに「納豆うまいだろ!何言ってんのキモイ!」とかいうのと一緒。
0466465
2006/03/12(日) 13:51:23フラグを使う奴は「ヘタだ。」とまでは思わんが、うまくはないなぁ。とは思う。
0467デフォルトの名無しさん
2006/03/12(日) 13:52:57納豆はウマいです。勘弁してください。
0468デフォルトの名無しさん
2006/03/12(日) 13:53:02466がなければよかったのに。
残念だ。
0469デフォルトの名無しさん
2006/03/12(日) 13:53:12OS書く以外の用途でCを使う奴は「ヘタだ。」とまでは思わんが、うまくはないなぁ。とは思う。
0470デフォルトの名無しさん
2006/03/12(日) 13:57:33ID出ない板だと一人基地外が出現するだけで大盛況だな
0471465
2006/03/12(日) 14:07:54納豆うまいだろ!何言ってんのキモイ!
>>468
「フラグは使うな」ってCプログラミング診断室の人もいってるぜよ!
>>469
ちょ、おま、まねすんな。なんか恥ずかしい
画像ファイルとかの読取り、書込みでも使うと思うよ。っていうか使ったよ。
あ、でもCじゃねーな。C++だ。OSか。ならやっぱ同意。
0472デフォルトの名無しさん
2006/03/12(日) 14:11:35特にクラスのある言語を使うと頭が混乱するというような事を言ってたな。
なんとなくわかるようなわからんような。
0473デフォルトの名無しさん
2006/03/12(日) 14:14:49クラスのある言語で、クラスのある言語を実装するのは混乱する、ということを言ってたはず。
お前のニュアンスは違う
0474デフォルトの名無しさん
2006/03/12(日) 14:37:360475デフォルトの名無しさん
2006/03/12(日) 14:38:340476デフォルトの名無しさん
2006/03/12(日) 14:45:010477468
2006/03/12(日) 15:02:56フラグの是非じゃなくてさ。
どんな優秀な作品にもケチつける人がいるように、
フラグ使用も個人の好みじゃないの?ってこと。
ぶっちゃけ、一貫したスタイルで書いてて、動けば何でも来いだ。
0478465
2006/03/12(日) 15:22:26>フラグ使用も個人の好みじゃないの?ってこと。
まあ、確かに。フラグ使ってる人もヘタなわけではないし。
>動けば何でも来いだ。
これは同意できないけど。コードはやっぱりできる限り、綺麗な方がいい。
まあ、俺が思った事とは、違う意味で言ったのかもしれないけどね。
0479デフォルトの名無しさん
2006/03/12(日) 15:46:40CString使えないんじゃMFCやめてしまっちゃええええーーこの!
0480デフォルトの名無しさん
2006/03/12(日) 16:26:230481デフォルトの名無しさん
2006/03/12(日) 16:40:380482デフォルトの名無しさん
2006/03/12(日) 21:46:04主観ていうか、世間で評価されてるプロダクツとか、まともな本に掲載されてるソースとか、
圧倒的多数は二項演算子の両脇を開けるってスタイルなのよ。
「宗教論争」とか「好みの問題」とか言ってる人がいるけど、その言い方で言うなら、
二項演算子の両脇を詰める「宗派」とか、「好んでいる」人っていないわけ。
自分はヘタじゃないって思い込みたい人がこのスレで暴れているだけ。
0483デフォルトの名無しさん
2006/03/12(日) 21:59:19読みやすい。空けないと読みにくい、と思い込むのは宗教。
結局全体的なバランスというか、コンテキストによるんだよ。
複雑な式なら、意味のまとまりごとにスペースや括弧を入れるとか、
自己満足じゃなくて、いかに他人に伝えるかが大事なんだから。
0484デフォルトの名無しさん
2006/03/12(日) 22:10:28と
if( a+b>>1 > x-y*4 )
ではどっちが可読性高いか。(個人的には下。個人的にね)。
たとえば、一行に複数の文を入れるのを嫌う人がいるが、値のスワップにおいては
int tmp = a[i]; a[i] = b[j]; b[j] = tmp; /* a[i],b[j], swap */
と一行で書いてしまったほうが、コードを見渡したとき、全体を把握する際邪魔に
なりにくい場合が多い。もちろんこの場合はマクロにしたほうがいいけどな。
0485デフォルトの名無しさん
2006/03/12(日) 22:11:250486デフォルトの名無しさん
2006/03/12(日) 22:12:05暴れてるのは「まともな」が口癖で、
文の後に括弧で言い訳みたいな注釈つけたり、半角?を使うのが特徴のお前「だけ」だよ。
>>221もお前だろ。
主観だと指摘されてるのに未だ「まともな」とか口走ってるのね。カワイソス
0487デフォルトの名無しさん
2006/03/12(日) 22:16:250488デフォルトの名無しさん
2006/03/12(日) 22:20:22そういう規約には往々にして、本質的に大事なことが抜けていたりする。
0489デフォルトの名無しさん
2006/03/12(日) 22:20:31お前はこう主張したいんだろう。
「まともな本では空白を空ける」 -> 「だから空白を空けるのがまとも」
しかし、お前のレスを読むと、次のように捉えてることがわかる。
「空白を空けるのがまともな本で、空けないのはまともじゃない」 -> 「まともな本では空白を空ける」 -> 「だから空白を空けるのがまとも」
こんな論理展開ありえない。
>>487
詰めて記述するのが正しい、と主張してる人は居ないので、それはどうでもいいんだよ。
0490デフォルトの名無しさん
2006/03/12(日) 22:22:050491デフォルトの名無しさん
2006/03/12(日) 22:23:41プロダクトの優秀なプログラマに、二項演算子の両
側にはスペースを空けたほうが上手なコーディング
ですよね、と質問したら鼻で笑われるよw
0492デフォルトの名無しさん
2006/03/12(日) 22:31:12ttp://www.gnu.org/prep/standards/standards.html
の5.1 Formatting Your Source Codeには、
v = rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
なんて記述がありますよ。
GNUウェアは世間で評価されていないプロダクツですね。
0493デフォルトの名無しさん
2006/03/12(日) 22:33:44「あぁ、バグでたとこをどんどん直してテストコード書いとけばいいんですよ」
って言ってた後輩がいたんだがあいつが一番正しいな、と思う
ま、そういってもここの住人は「お前が一番分かってない」と嬉々として書き込むんでしょうがw
0494デフォルトの名無しさん
2006/03/12(日) 22:34:590495デフォルトの名無しさん
2006/03/12(日) 22:35:33まともということでいいな?
0496デフォルトの名無しさん
2006/03/12(日) 22:36:340497デフォルトの名無しさん
2006/03/12(日) 22:37:31俺と同じコーディングスタイルをしているんだ。
俺と違うコーディングタイルをしているものはまともじゃない。
そうすると、まともなコードってのはどんなのかわかってくるよ。
そのときにコードを見てみ。俺と同じコーディングスタイルだから。
で、違っていたら、それはまともじゃない。
0498デフォルトの名無しさん
2006/03/12(日) 22:39:23するとな「まともな本」のコーディングスタイルは
必ず、俺が推奨するコーディングスタイルなんだ。
この謎わかる?
0499デフォルトの名無しさん
2006/03/12(日) 22:40:20それ2つの例の両方とも、二項演算子の両端を空けてない場所があるやんけ。
0500デフォルトの名無しさん
2006/03/12(日) 22:42:03GNUが評価されてないなんてこた言う度胸はないけど、
GNUのって日本ではあまりお目にかかれないスタイルって
感じするよね
if (x < foo (y, z))
haha = bar[4] + 5;
else
{
while (z)
{
haha += foo (z, z);
z--;
}
return ++x + bar ();
}
こんなスタイル(海外のOSSではもちろんあるけど)日本で仕事する限りにおいて
すくなくても俺の周りでは見たことない
0501デフォルトの名無しさん
2006/03/12(日) 22:43:05空けてある場所もありますよね。
この二つからでる答え。
バカじゃない人ならわかりますよね。
わからなかったらバカです。
0502デフォルトの名無しさん
2006/03/12(日) 22:44:02じゃあ、お前の周りにいる奴は、まともじゃない。
0503デフォルトの名無しさん
2006/03/12(日) 22:45:23一行一行に空行空ける?空行空けない?
俺空ける派。
0504デフォルトの名無しさん
2006/03/12(日) 22:47:46別に見にくくないって時は、空けなくていいじゃん。
そんなもん気分次第でいいでしょ?
ルール作るほどのこと?
それともどっちかにしないといけないという明確な理由でもあるの?
理由が無いルールのためのルールは作らないでよね。
0505デフォルトの名無しさん
2006/03/12(日) 22:53:340506デフォルトの名無しさん
2006/03/12(日) 22:56:31そうか?422や391などみてみれば?このスレでもGNUスタイルで括弧
つけて書いてるやついたっけ? まったくいないとは思わんけど、このスレでは
圧倒的にGNUスタイルのやつは少数派でしょ
いくらなんでも見識狭すぎじゃね?
0507デフォルトの名無しさん
2006/03/12(日) 22:58:28だから空けた方がいい
0508デフォルトの名無しさん
2006/03/12(日) 22:59:23単純にその人にとって読みやすければよい。
そんな細かいことを気にすると禿げるぞ。
ただ、C++やっているならむしろ禿げるべきかもしれない。
0509デフォルトの名無しさん
2006/03/12(日) 23:01:09空けなかったらダメという場合だけ空ければいい。
0510デフォルトの名無しさん
2006/03/12(日) 23:01:11何ではげなきゃいけないんだよw
と、ちょっぴり不安だぞ
0511デフォルトの名無しさん
2006/03/12(日) 23:02:32単純にその人にとって読みやすければよい。
そんな細かいことを気にするとバグるぞ。
ただ、C++やっているならむしろバグるべきかもしれない。
0512デフォルトの名無しさん
2006/03/12(日) 23:04:280513デフォルトの名無しさん
2006/03/12(日) 23:08:540514デフォルトの名無しさん
2006/03/13(月) 03:00:53>if( a + b >> 1 > x - y * 4 )
>if( a+b>>1 > x-y*4 )
演算子の順序あってるかい?
あってるとすれば俺ならこうかな?
if ((a+b) >> 1 > x - y*4)
0515デフォルトの名無しさん
2006/03/13(月) 04:15:47一番の勘違いは
「自己満足じゃなくて、いかに他人に伝えるかが大事なんだから」
の部分だろうね。
余程の酔狂か仕事でなけりゃ、誰も他人のコードなんて読みたいとも思わないもの。
指導者なら仕方なく貴方の汚いコードを読まなければならず、
そして汚いコードを読まなければならない苦痛から色々作法を言いたくなるのだろう。
実際、俺たちもそんな事をつい言ってしまうが、ホントは違う。
逆に言えば作法について言わなくちゃいけない相手ってのは余程相手がヘタクソなレベルだ。
たとえば、
「cの文法から演算子の左右に空白が無ければ空白を入れて出力するフィルターを作ってごらん」
と言って、2時間くらいで書いてくるような奴には、そんな事は言わないし
実際書いてくる奴のコードは、そんな作法とか関係なく、
読みたくなるほどアイデアが込められていて面白いもの
0516デフォルトの名無しさん
2006/03/13(月) 04:54:10v + 1
for(i=0; i<size; i++) {
if(i==0) {
} else {
}
}
俺は空白云々は好みの問題だと思う派。
==、forの()内、長い式で優先順位の高い演算子
辺りはくっつけるのが好き。
0517デフォルトの名無しさん
2006/03/13(月) 04:54:14他人のためにも自分のためにも
0518デフォルトの名無しさん
2006/03/13(月) 04:56:03あとは気分
0519デフォルトの名無しさん
2006/03/13(月) 07:43:29フィルターというと標準入力 標準出力だが、
プログラム中で使えるフィルターに変更となると、出来る奴は極端に少なくなる
たとえば 1バイト毎に呼び出される手続スタイル
それより面倒なのが、1バイトが必要な時に呼ばれる関数スタイル
両方に対応出来るコードを書けといわれると
1) コルーチン
2) FIFOバッファ
を使わないといけないが、2)はともかく 1)はLONGJUMP/ファイバが使える環境でも実装出来る奴は少ない
逆に言えば、そういうツール作りさえマトモに出来ないから、
妙な所にコダワルのだとも言える。
プロジェクトで最初にそんな話題が出るなら、そのプロジェクトの奴はみんなヘタクソという事だ
0520デフォルトの名無しさん
2006/03/13(月) 07:55:38A 作れる派
・実際に2時間くらいで作ってみせる 3% 30分なら神レベル 0.3%
B 作れない派
・ そんなもの作らなくてもあるんだから車輪の最発明なんてしません 40%
・ どっかのコードをコピぺ 30%
・ 2千行くらいのスパゲッティコードを書いて、しかも動かない 20%
・ すなおにゴメンなさい 7%
で10人くらい集まってると、車輪の最発明だからしない派と、どこからコピペすりゃいいの派とがワイワイやってる間に
1人が作って、それで終わりか、その一人がいなくて、半日以上時間が過ぎてゆくか
0521デフォルトの名無しさん
2006/03/13(月) 08:22:53仕事でコード書いたことないだろ?
それともゲームプログラマかなんか?
0522デフォルトの名無しさん
2006/03/13(月) 08:36:05派遣で携帯電話の仕事でもしてるの?
0523デフォルトの名無しさん
2006/03/13(月) 08:46:20indent(C++,javaならastyle)というプログラムがあることを知らない人が多いのか?
いつまでやってんだ?
0524デフォルトの名無しさん
2006/03/13(月) 08:50:210525デフォルトの名無しさん
2006/03/13(月) 10:09:06ループ内でネストが深くなりそうな気がしたら良く使ってるのだが、
以前一種のgotoだといわれてしまった
0526デフォルトの名無しさん
2006/03/13(月) 10:19:10状態遷移で分析した結果を素直に書くには gotoが一番さ
そんなこと言えば だいたい break なんかより switch文こそ gotoじゃないか
0527デフォルトの名無しさん
2006/03/13(月) 10:20:01そうだが何か問題でも?
0528デフォルトの名無しさん
2006/03/13(月) 10:21:22つまりあったほうが便利
便利さの代償とバランスについては過去から延々議論されてて答が出ないので触れないほうがよい
0529デフォルトの名無しさん
2006/03/13(月) 10:32:320530デフォルトの名無しさん
2006/03/13(月) 10:35:340531デフォルトの名無しさん
2006/03/13(月) 10:42:25else もgotoだ
結局、制御文は goto なのさ
0532デフォルトの名無しさん
2006/03/13(月) 11:18:01貴重な人生の一部はいったいどこに保存されているのだろうか。
恐ろしいことにこのスレに常駐していると一分一秒ごとに
寿命がどんどん縮まっていくということを
彼らはちゃんと認識しているのだろうか。
0533デフォルトの名無しさん
2006/03/13(月) 11:57:000534デフォルトの名無しさん
2006/03/13(月) 14:00:27CString使えないプロジェクトなんか絶対従わんっ!
0535デフォルトの名無しさん
2006/03/13(月) 14:56:350536デフォルトの名無しさん
2006/03/13(月) 15:21:51お金というのは、捨てるという事が無ければ 常に 貰う人と差し出す人がいて、それぞれ+/-とすると
ゼロサムになるんだよね。
株の売り買いとか土地の売り買いは、ゼロサムゲーム。
でも、消費だけ生産があり、生産は価値創造。
消費は人にだけ許された行為。 消費には必ず創造がつきまとうんだ。
だから、このスレで何かが消費されたり、消耗されるとすれば、その分創造もあるという事だし
何か、誰かがこのスレに触発されて創造すれば、消費もあるという事かもね
0537デフォルトの名無しさん
2006/03/13(月) 17:34:09もしかして、indent なんてガイシュツだということを知らな(ry
0538デフォルトの名無しさん
2006/03/13(月) 20:54:18もしかしてないよ。
結論とか言って既出なのは知っていたが、それでも続いていたから書いた。
細かいことを気になさる方ですね。ニヨニヨ。
0539デフォルトの名無しさん
2006/03/13(月) 21:06:04> つうか、そもそもお前の論理おかしいんだよ。
> 「まともな本では空白を空ける」 -> 「だから空白を空けるのがまとも」
いやいや「まともな」ってつけてるのは、学生が勉強しながら書いたような本とか、
変なの探し出してきて「こんなのがある」って言うヤツがいるかもしれないからさ。
普通の本だと、二項演算子の両側をくっつけて書いてあるの、捜すの困難だろ。
0540デフォルトの名無しさん
2006/03/13(月) 21:09:43・流し読みしてあちこちでshortが目につくソース。
・構造体をfwrite()やfrwad()で丸ごと読み書きしてるソース。
・fprintf()やfwrite()などはエラーチェックしてるのに、
fclose()やfflush()はエラーチェックしてない中途半端なソース。
0541デフォルトの名無しさん
2006/03/13(月) 21:15:38構造体もそのまま読み書きする事は多いね。
0542デフォルトの名無しさん
2006/03/13(月) 21:17:24つかこのスレわざとやってんの?
0543デフォルトの名無しさん
2006/03/13(月) 21:17:39これは理由があるのだろう。 理由が無ければヘタだが
まあ今なら __int16 とかが使える環境ならそれでいいのだろうけど
>構造体をfwrite()やfrwad()で丸ごと読み書きしてるソース
エンディアンの違いやサイズの違いで可搬性は悪くなるが
どうせ別の環境同士でファイル交換をそうするわけじゃないなら問題ないだろ
とりあえず速度優先って仕様かもしれないし、一昔前の環境なら、そうしないと速度出なかったからね
>・fprintf()やfwrite()などはエラーチェックしてるのに、
fclose()やfflush()はエラーチェックしてない中途半端なソース。
でもまあ fclose失敗したからってどう対応出来るわけでもないし
そこまでエラーが無いなら、とりあえずファイルは出来てるさ
0544デフォルトの名無しさん
2006/03/13(月) 21:18:17これはダメ。たまたま動いてるだけだと思った方がいいよ。
0545デフォルトの名無しさん
2006/03/13(月) 21:21:33どうしてそう思うわけ? 可搬性の問題を言ってるの?
0546デフォルトの名無しさん
2006/03/13(月) 21:22:10でかい配列を確保するとか、shortを使わされるライブラリが必要なときとか、
そういうときには使うけどさ、単独で使う用途とかあまりないんじゃない?
構造体のそのまんま読み書きは、同じ環境、コンパイラでも、オプション一つで
バグるじゃん。
0547デフォルトの名無しさん
2006/03/13(月) 21:23:26それこそ、バイナリデータを構造体にそのままfreadで読み込む為に shortを使うんだよ
0548デフォルトの名無しさん
2006/03/13(月) 21:25:23正解です。短いレスでたくさん釣れると高ポイント。
0549デフォルトの名無しさん
2006/03/13(月) 21:26:34> でもまあ fclose失敗したからってどう対応出来るわけでもないし
> そこまでエラーが無いなら、とりあえずファイルは出来てるさ
バッファのフラッシュに失敗して、最後の書き込みに失敗してるかも。
入出力のエラーチェックをして、対応してるコードなら、同じように対応すればいいよ。
0550デフォルトの名無しさん
2006/03/13(月) 21:27:010551デフォルトの名無しさん
2006/03/13(月) 21:27:26こわ!
0552デフォルトの名無しさん
2006/03/13(月) 21:30:04でもさ、 fwrite / fprintf なら再度実行するような処理が出来るけど fclose/fflashが失敗なら
とりあえず何かエラーでしたよと伝えるしかないわけだ。
まあ出してもいいとは思うけどね。
0553デフォルトの名無しさん
2006/03/13(月) 21:31:11某OSでは、fclose()のまえにfflush()を入れないと、プログラムが終了するまで、
バッファがフラッシュされないとかある。
どうやって、エラーチェックするんじゃい。
0554デフォルトの名無しさん
2006/03/13(月) 21:33:01>構造体のそのまんま読み書きは、同じ環境、コンパイラでも、オプション一つで バグるじゃん。
そうならないように、 #pragma とかで大抵は固定出来るようになってるから、勉強しておいで
ヘタ云々の前に お勉強中の状態みたいだね
0555デフォルトの名無しさん
2006/03/13(月) 21:34:31出してもいいっていうか、ユーザに伝えるなりなんなりしないとまずいでしょ。
0556デフォルトの名無しさん
2006/03/13(月) 21:38:34まずい場合もあれば、気にしない場合もある。
表示すると簡単に言うけど、 ライブラリレベルで作成する場合には
そう簡単に表示出来るというかしていいわけでもないしね
0557デフォルトの名無しさん
2006/03/13(月) 21:39:170558デフォルトの名無しさん
2006/03/13(月) 21:44:37入出力のみのライブラリだったら、そりゃ表示はしないでしょ。
かわりに、呼び出し側に教えるってことになるね。
0559デフォルトの名無しさん
2006/03/13(月) 21:50:46ウイルスチェッカが走ったりすること。
0560デフォルトの名無しさん
2006/03/13(月) 21:51:52大量のデータとか、通信とかIO関係まわりとかくらいしか思いつかないね。
(IO関係も、できればshortのバイナリイメージの直書きとか避けたい気分)
0561デフォルトの名無しさん
2006/03/13(月) 21:52:34頭悪いなお前
「空白を空けるのが普通な本で、空けないのは普通じゃない」 -> 「普通な本では空白を空ける」 -> 「だから空白を空けるのが普通」
0562デフォルトの名無しさん
2006/03/13(月) 21:53:39お前はそれを一切知らずに先に批判してるのかよ・・・
0563デフォルトの名無しさん
2006/03/13(月) 21:54:40ああ、時々、自作の errno もどきを作る人がいるよね
アレって何の意味があるんだろ? errnoで足りないなら
windowsなら GetLastError すりゃいいのに・・・・
0564デフォルトの名無しさん
2006/03/13(月) 21:59:01#pragma packを必ず使うだけで解決できるといいな。
0565デフォルトの名無しさん
2006/03/13(月) 21:59:44short はあんまり使わないけど SHORT は サイズがわかってるから使うんだよ
サイズがわかってるから、わざとラップアラウンドさせたり
そこでオーバフローの検出をしたりするわけ
たとえば、加算結果が16ビットを超えたかどうかを 0x7FFF -0x8000の2回チェックするより
16ビットのサイズの入れ物に入れてみて、同じ値かどうかチェックとすれば比較が1回ですむでしょ?
0566デフォルトの名無しさん
2006/03/13(月) 22:04:09たとえば、世に出回ってる本の何割かが二項演算子の両脇を詰めるというスタイルだったら、
俺の言ってることはそういう屁理屈になるけどさ、そういう本がないんだもん。
あっても、すごい珍しいでしょ。
二項演算子の両脇は空白が普通だよね。
詰めてるヤツは、ろくに勉強せずに「動けばいい」と、一人で、もしくは閉じた環境で、
ゴリゴリ書いてるやつ。
0567デフォルトの名無しさん
2006/03/13(月) 22:06:31ファイルの入出力をするようなライブラリの呼び出して
いちいち、帰り値で何のエラーでしたとか知るよりは
SetLastError(0) -> ライブラリ -> GetLastError で確認
他に特別伝えなければいけないエラーは、ライブラリ内で SetLastError
てな方式に統一しておくのが一番だよ
0568デフォルトの名無しさん
2006/03/13(月) 22:11:04fwrite()のエラーチェックをしているのに(直後の)fclose()のエラーチェックをしないコード。
fscanf()のエラーチェックをしていないのに(直後の)fclose()のエラーチェックをしているコード。
入力ファイルを内容が「あるだけ」処理するプログラムでfgets()の後にferror()しているコード。
0569デフォルトの名無しさん
2006/03/13(月) 22:14:56普通という単語は、「一般的」といった感じで使われてるけどさ、
所詮、発言者の経験した範囲内でのことでしかないのだよ。
「普通」が口癖になってる人は気をつけた方がいいよ。
0570デフォルトの名無しさん
2006/03/13(月) 22:14:57まあ、印刷するんなら、読んでもつまらないコードの部分は、少しでも体裁を整えるのは当然の事。
だからそれが正義だと言われてもねえ。 必要なら後で整形すりゃいいじゃない。
整形してないコードを渡されたら黙って整形してあげればいいでしょ?
0571デフォルトの名無しさん
2006/03/13(月) 22:17:570572デフォルトの名無しさん
2006/03/13(月) 22:20:17実際は fcloseでflash動作もするから残りのバイトを書く領域が無いとかでエラーになるかもしれないよね。
でも、それは、fcloseの帰り値をいちいちその場でチェックしなくても、
ライブラリから帰ったメインがチェックするならすればいいじゃない。
0573デフォルトの名無しさん
2006/03/13(月) 22:23:09光らせてどうする。
0574デフォルトの名無しさん
2006/03/13(月) 22:23:46> たとえば、世に出回ってる本の何割かが二項演算子の両脇を詰めるというスタイルだったら
本が世の中のすべてじゃないよ。
間違いだらけの本だって多いし。
0575デフォルトの名無しさん
2006/03/13(月) 22:39:03とりあえず手元の本ぱらぱらっとめくったら、
5冊のうち4冊で空白入ってないコードが載ってた。
0576デフォルトの名無しさん
2006/03/13(月) 22:56:050577デフォルトの名無しさん
2006/03/13(月) 23:00:49その本、教えてください!
0578デフォルトの名無しさん
2006/03/13(月) 23:02:52お前みたいなタイプが好きそうなK&Rより。(p.173)
p = (char *) malloc(strlen(s)+1);
if (p != NULL)
strcpy(p, s);
文脈に応じて使い分けろってこった。
0579デフォルトの名無しさん
2006/03/13(月) 23:08:14おまえの人気に嫉妬する。
0580デフォルトの名無しさん
2006/03/13(月) 23:53:06奴らの方が気持ち悪い。566は自分の感覚を信じて
世の中渡っていくタイプ。いわば主役。批判してるの
はその他大勢
0581デフォルトの名無しさん
2006/03/13(月) 23:54:250582デフォルトの名無しさん
2006/03/13(月) 23:56:590583デフォルトの名無しさん
2006/03/14(火) 00:08:08お前、賛成の理由が書いてないぞw
お前の言い方じゃ、>>566と逆のことを言って、
自分の感覚を信じて世の中渡っていっている
やつにも当てはまるんだが。
それに普通だなんだと言っているのはむしろ>>566の方。
まあ、どうせ自演だろうがなw
0584デフォルトの名無しさん
2006/03/14(火) 00:32:21都合の悪いレスを見ないフリするのはもうやめろ!
お前自身がまともでも普通でもねぇよ。
0585デフォルトの名無しさん
2006/03/14(火) 00:53:220586デフォルトの名無しさん
2006/03/14(火) 01:12:330587デフォルトの名無しさん
2006/03/14(火) 01:18:30> たとえば、加算結果が16ビットを超えたかどうかを 0x7FFF -0x8000の2回チェックするより
> 16ビットのサイズの入れ物に入れてみて、同じ値かどうかチェックとすれば比較が1回ですむでしょ?
何でそんなに馬鹿なふりするの?
君はもっと素直な子だったじゃない
0588デフォルトの名無しさん
2006/03/14(火) 01:45:560589デフォルトの名無しさん
2006/03/14(火) 03:09:09http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/CodeConventions.doc7.html#682
0590デフォルトの名無しさん
2006/03/14(火) 07:04:40そうだな。
それで満足しちゃいけない。
さらに飽和処理まで論理演算でやらないと素直とはいえないな
0591デフォルトの名無しさん
2006/03/14(火) 07:16:21音やビットマップの情報は 8/16bitなどのサイズを使う場合が多いよ。
たしかにMMX-->SSEで、処理そのものは浮動小数点でリッチにやるとしても
結果は、8/16固定小数点にしないといけないし
ライブラリも固定小数点のものも多いから
それから、多倍長処理を書く場合も、Cなら32bitより16bitで処理する方が桁処理が楽とか
0592デフォルトの名無しさん
2006/03/14(火) 07:56:03C++だと構造体でもメソッドを付ければVMTがついてくる場合があるから少し危険だし
そもそもC++使うような環境なら、こんな直の手法はやらない方がいいね。
0593デフォルトの名無しさん
2006/03/14(火) 08:51:38こんなアホ認識は危険だな。場合がある、とかなんであやふややねん。
仮想関数テーブルへのポインタが付加されるのは、仮想関数をつけたときだけ。
構造体にユーティリティ関数をつけることは全くの無害。
0594デフォルトの名無しさん
2006/03/14(火) 09:33:47決まり切った初期化とか、構造体の関数にしてるけど、これってヘタかな?
0595デフォルトの名無しさん
2006/03/14(火) 09:35:420596デフォルトの名無しさん
2006/03/14(火) 11:09:12で、誰かが継承して 使おうとして、勝手にvirtual を付けたりして
0597デフォルトの名無しさん
2006/03/14(火) 11:18:21Delphiの try 〜 finally の代用として
関数内で構造体を定義して、デストラクタを使うというのは良くやるけどね
ちなみに
Delphiの try 〜 finally というのは
例外が投げられたり途中return で ブロックを勝手に抜けられるような時に
必ず実行される機能
0598デフォルトの名無しさん
2006/03/14(火) 11:32:24final欲しいですよねえ。何とかできないことはないけど、美しくない。
>>597
finallyも欲しいですよねえ。何とかできないことはないけど、美しくない。
0599デフォルトの名無しさん
2006/03/14(火) 11:36:50BCB、VC++、gccに全部あるような希ガス
hewに無いかOTL
0600デフォルトの名無しさん
2006/03/14(火) 17:37:54死滅してしまうにはそれなりに惜しい言語だ
0601デフォルトの名無しさん
2006/03/14(火) 17:53:500602デフォルトの名無しさん
2006/03/14(火) 18:02:27ほかのは知らないけど。
0603デフォルトの名無しさん
2006/03/14(火) 19:46:42っても、{;}意外の言語は全般嫌いなんだけどなw
まぁ、趣味じゃないってだけの話なんだけどな。
0604デフォルトの名無しさん
2006/03/14(火) 21:39:19Delphiは戦略が悪かったな。
タダで配ればよかったものを。
0605デフォルトの名無しさん
2006/03/14(火) 22:23:160606デフォルトの名無しさん
2006/03/14(火) 22:39:46只で配ってた時期が存在していた。
ま、そんなもんだ。
0607デフォルトの名無しさん
2006/03/14(火) 22:43:37好き嫌いと、使用不使用は話が別。
0608デフォルトの名無しさん
2006/03/14(火) 23:03:410609デフォルトの名無しさん
2006/03/14(火) 23:20:270610デフォルトの名無しさん
2006/03/14(火) 23:21:330611デフォルトの名無しさん
2006/03/15(水) 08:38:36intに読めばエンディアンの問題、
char 配列に読むといったって、char が 8bitじゃない環境(TMP32用とか)だって世の中にはあるわけで
結局はバイナリの読み書きは環境依存でしかない。
0612デフォルトの名無しさん
2006/03/15(水) 09:44:520613デフォルトの名無しさん
2006/03/15(水) 10:31:350614デフォルトの名無しさん
2006/03/15(水) 10:33:40そんだけ。
0615デフォルトの名無しさん
2006/03/15(水) 10:53:11> fead
> ()
ぱっと見て「ヘタだなあ」と思う文章
0616デフォルトの名無しさん
2006/03/15(水) 11:15:230617デフォルトの名無しさん
2006/03/15(水) 12:39:520618デフォルトの名無しさん
2006/03/15(水) 12:44:120619デフォルトの名無しさん
2006/03/15(水) 12:53:150620デフォルトの名無しさん
2006/03/15(水) 13:01:07最初っからタダで配っていれば・・・
そして、たかがダウンロードするためにメールアドレスとか要求しなければ・・・
発売当初は、VC++並みの開発環境と、VBなみのGUIの書きやすさで、
かなり期待していたもんだがねぇ。
言語の普及なんて、色々な付加価値つけたとしても難しいのに、
金とるわ、メールアドレス要求するわじゃだめだな。
0621デフォルトの名無しさん
2006/03/15(水) 13:06:24プログラマの発想って、こんなのばっかり。
よほど抑圧されてんだな。
0622デフォルトの名無しさん
2006/03/15(水) 13:11:23それで偉そうに言われてもね・・・・
for文内とかならまだしも、ちょっと長い文で詰めてたらすぐ見づらくなる。
それに両端空けないときちんと動作しないこともあるから統一性を考えたら
あけたほうがいいだろ?
何度も言われてるがこれは普通の宗教論争とかじゃない。
これが普通だし、普通だと思えない奴はただ単に経験不足。
てか学生の独習して身に付けたプログラミングスタイルだろ。
自分の未熟さを必死に主張して恥ずかしくないのか?
プログラマーに多すぎるんだよ。こういうの。
他人に迷惑かけまくって(この場合だと見づらいコード)注意されたら
必死に反論してくる奴。最初はまともな反論だけど反論できなくなると
すぐむちゃくちゃな理論持ち出して強引に自分の意見を正当化させようとするやつ。
邪魔だからいやなんだけど。
さっさと書き方直せ!!いやならせめて、他人に見せるコードの時くらいは直せ
0623デフォルトの名無しさん
2006/03/15(水) 13:11:28通信?通信はrecv()で構造体を読み取った後にエンディアン合わせのためにntolとかでつよ
fread/fwriteによる構造体でのやり取りも、ntolみたいに対策とっておけば問題なしですよ。
まあ、開発するソフトが、常に同じ機種(CPU)であるという前提があれば、
読み取りや書き込みの速度も速いしfread/fwrite使ってもよし。
異なるCPUを想定するならば、ntolみたいに対策とればよし。
fread/fwriteを「絶対使ってはだめ!」という理由は絶対にない。
0624623
2006/03/15(水) 13:14:11fread/fwriteのメリット、デメリットを知らなければそれは「ヘタだなぁ」ではあるけれど、
メリット、デメリットを知りながら使いこなしているのであれば「うまいなぁ」とも思う。
0625デフォルトの名無しさん
2006/03/15(水) 13:20:00自動整形すりゃいいやん
0626デフォルトの名無しさん
2006/03/15(水) 13:21:010627デフォルトの名無しさん
2006/03/15(水) 13:35:410628623
2006/03/15(水) 13:36:41/\⌒ヽペタン
/ /⌒)ノ ペタン
∧_∧ \ (( ∧_∧
(; ´Д`))' ))(・∀・ ;)
/ ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O ノ ) ̄ ̄ ̄()__ )
)_)_) (;;;;;;;;;;;;;;;;;;;)(_(
コーディングスタイル(if()と{の間には改行とか細かいスタイル)なんて、
ピーマン好きとか、嫌いかとか、そういう個人の好みの問題だと思うんだけどなぁ。
そんなもの日本語でいえば「方言」みたいなもんで、読みやすいかどうかにはさほど関係はしないと思う。
コードが読みやすい、読みにくいが決定される根本的な部分は、そんな「方言」みたいな部分でなくて、
構造の組み立て方や、よけいな変数多かったりとか、そういう部分だと思う。
言葉でいえば、主語がなかったり、「あれ」とか「それ」とか頻繁に使うような奴だね。
単項演算子の両端詰めるなとかいうのは、関西弁は聞き取りにくいから直せとかいってるようなもんで、
標準語に直しても意思疎通のしやすさには、さほど影響はないかと。
0629デフォルトの名無しさん
2006/03/15(水) 13:49:020631デフォルトの名無しさん
2006/03/15(水) 14:53:39しばしば主語がオペレータになったりプログラムになったり画面になったりする。
そういう連中の書くコードもやはり、ifぶんなどで「何と何を比較して」の部分で
しばしば順序が入れ替わって読みにくい傾向はある。
0632デフォルトの名無しさん
2006/03/15(水) 14:58:29読みにくい。
0633628
2006/03/15(水) 15:27:19「そういう連中の書くコード」が読みにくいかどうかは知らんが、
一般的なコンピュータ知識しか持たない人間に向けたマニュアルに、
「検索の入力欄には%が使えます。DBのLIKE句と同じです」とか書いてあるのにはテラワロッタ
一般人にLIKE句の意味がわかるかっつの。
0634デフォルトの名無しさん
2006/03/15(水) 16:14:59ところでそのAAは何?
0635デフォルトの名無しさん
2006/03/15(水) 16:15:54餅つけ→おちつけ
0637デフォルトの名無しさん
2006/03/15(水) 17:40:18質問1、あなたのパソコンにはモノクロのモニターがつながっているのですか?
質問2、あなたはキーワードを色で別けられないようなエディタ(例えばメモ帳)を使ってコードを読んでるんですか?
質問3、あなたは強度の色盲ですか?
質問4、あなたは、ちょっと長い文になるような数式を平気でそのまま書いているのですか?
質問5、あなたは、両端空けないときちんと動作しないようなコードを平気で書いているのですか?
質問6、プログラマーに多すぎると理解してるのに、あなたの意見が少数である事を理解出来ないのですか?
質問7、他人のコードを見る時に、自分のスタイルにして見るのに、あなたのパソコンはどれだけの時間を使うのですか?
0638デフォルトの名無しさん
2006/03/15(水) 18:29:06二項演算子なら兎も角。
0639デフォルトの名無しさん
2006/03/15(水) 18:37:330640デフォルトの名無しさん
2006/03/15(水) 18:38:42それが経験不足からくる発言だってんだろ?
大体ほとんどの人が読みづらいと思うコードを書いといて、
「読みづらいなら書き直すプログラム作れよ」とかふざけすぎ。
ちょっとは人のことも考えろカスが。
>>638
そりゃもちろん詰める場合もあるが、ここで話してるのは
何か特別読みやすくなるときを除いて両端は空けろってこと。
0641デフォルトの名無しさん
2006/03/15(水) 18:40:590642デフォルトの名無しさん
2006/03/15(水) 18:44:490643638
2006/03/15(水) 18:57:44再確認するが、単項演算子でか?
if (! flag) {
* ptr = - * ptr;
++ counter;
}
って書くのか?
if (!flag) {
*ptr = -*ptr;
++counter;
}
このように全部詰めてもそれほど読み難いとは思わんぞ。
0644デフォルトの名無しさん
2006/03/15(水) 19:18:110645デフォルトの名無しさん
2006/03/15(水) 19:42:53貴方のように簡単なプログラム作れないようなヘタレにも世の中は優しいもの。
既にそういうソフトはありますよ。
ソースの見栄えを気にしない人は貴方が勝手に変更しても気付きもしないでしょう。
>>641
複数で開発してようと、実際にコードを設計し書いてデバッグ作業の70%は一人でやってるもの。
ソースの空白が気になって仕方ないのに、自分でどうこうする工夫も出来ないような人は、単なるお荷物。
無視した方がいいでしょう
0646デフォルトの名無しさん
2006/03/15(水) 20:07:290647デフォルトの名無しさん
2006/03/15(水) 20:10:180648デフォルトの名無しさん
2006/03/15(水) 20:22:49空白開けろと力説してる人は、教科書とか読んでないんじゃないかと。
もしくは初心者用の本読んで満足してるとか。
0649デフォルトの名無しさん
2006/03/15(水) 20:23:170650デフォルトの名無しさん
2006/03/15(水) 20:24:05教科書は、初心者用ではないとでも?
つかなんだその腐った本。晒せ。
0651デフォルトの名無しさん
2006/03/15(水) 20:27:52プログラミング言語C++ 第三版とか
UNIXネットワークプログラミングとか。
0652デフォルトの名無しさん
2006/03/15(水) 21:01:00>プログラミング言語C++ 第三版とか
http://public.research.att.com/~bs/3rd_code.html
これ?
あけてあるじゃん。 と思ったけど、一部あけてないね。
どういう法則性だろ。
0653デフォルトの名無しさん
2006/03/15(水) 21:03:35ぱらぱらっと見た感じだと、あけてあるけど、そうでないところもあるのかな?
0654デフォルトの名無しさん
2006/03/15(水) 21:20:40flag = true;
} else {
flag = false
}
みたいのは下手だなと思う
0655デフォルトの名無しさん
2006/03/15(水) 21:23:240656デフォルトの名無しさん
2006/03/15(水) 21:26:460657デフォルトの名無しさん
2006/03/15(水) 21:34:210658デフォルトの名無しさん
2006/03/15(水) 21:35:36空白の話じゃないんだけど…… 違う人へのレスか?
>>656
見逃してくれ orz
0660デフォルトの名無しさん
2006/03/15(水) 21:51:36昔、中国の越にとても美しい人がいた。
西施という人だが、病気になってその苦しみに眉をひそめていた姿がさらにたいそう美しかったので、
そうすれば美人に見えるのだと思った近隣のブスがまねをして、しかめっつらをしたところ、
さらにブスが際立ったと、気味悪がられてしまった。
人のコードに憧れるのはいいが、肝は空白じゃないんだよ
0661デフォルトの名無しさん
2006/03/15(水) 22:06:350662デフォルトの名無しさん
2006/03/15(水) 22:11:09りちゃーどは、空けてる。
空白詰めてるのヘタでしょ。
・浮動少数が等しいかを、==で判定してる。
0663デフォルトの名無しさん
2006/03/15(水) 22:11:280664デフォルトの名無しさん
2006/03/15(水) 22:16:250665デフォルトの名無しさん
2006/03/15(水) 22:27:20空けたり空けなかったりしてる人って、使い分けてるわけじゃなくて、
特に意識してないんじゃないの?
0666デフォルトの名無しさん
2006/03/15(水) 22:33:18散々非難されてるのにしつこい。
こいつのコードがヘタかヘタじゃないかに関係なく、仕事一緒にしたくねー。
0667デフォルトの名無しさん
2006/03/15(水) 22:35:53まぁ意識はしないよね。
手がきれいなコード覚えてるから。
0668デフォルトの名無しさん
2006/03/15(水) 22:46:00main(int argc, char **argv)
{
}
とか書く奴も死んで欲しい。死んでくれる?お願い
0669デフォルトの名無しさん
2006/03/15(水) 22:47:25非難っていうか、自分をヘタじゃないって思い込みたい人が、暴れてるだけじゃん。
0670デフォルトの名無しさん
2006/03/15(水) 22:48:32特に基準があるわけじゃなくて、気分でやってるとか?
0671デフォルトの名無しさん
2006/03/15(水) 22:50:18空白は空けろよ。
空白を空けるように指示するコーディング規約はあっても
空白を詰めなさい、っていうコーディング規約はないだろ?
空白を詰めることが醜くなるだけで何のメリットもないということだよ。
キミのような経験もスキルもない奴はコーディング規約を守っておけ。
0672デフォルトの名無しさん
2006/03/15(水) 22:50:58>必死に反論してくる奴。
必死になのはお前じゃーん。なにその長文。キモイ。
つうか、空白が大好きな癖に、なんでそんなギチギチに書いてんの?
読みやすく段落ごとに空行ぐらい入れろよバカ。
>最初はまともな反論だけど反論できなくなると
>すぐむちゃくちゃな理論持ち出して強引に自分の意見を正当化させようとするやつ。
例えば、 >622なんかはかなり当てはまってるな。
>これが普通だし、普通だと思えない奴はただ単に経験不足。
お前は社会人として経験不足。たかがこんなことで暴れるなよ。
0673デフォルトの名無しさん
2006/03/15(水) 22:51:23> 空白を詰めなさい、っていうコーディング規約はないだろ?
当たり前だ。
頭大丈夫か?
0674デフォルトの名無しさん
2006/03/15(水) 22:51:39そう。お前のことな。
0675デフォルトの名無しさん
2006/03/15(水) 22:53:59括弧が省略できるために、、
+ の左右に空白があるかどうかで
評価が変わってくる場合があったような気がする。
ぱっと見てキモいなぁと思う仕様だった。
0676デフォルトの名無しさん
2006/03/15(水) 22:56:14だから、当たり前のことだから空白を詰めるなって言うんだよ。
おまえホントバカだな。まだ理解できてないの?
0677デフォルトの名無しさん
2006/03/15(水) 22:56:50特に意識してなくて、普通に勉強してれば、空けてないのは
美しくないって感性が育つよね。
0678デフォルトの名無しさん
2006/03/15(水) 22:59:06「空白は空けなくてもいい」という仕様書を見て
「空白をあけてはいけない」と読むキミは
プログラマに向いてないと思う。
0679デフォルトの名無しさん
2006/03/15(水) 22:59:170680デフォルトの名無しさん
2006/03/15(水) 22:59:31このバカ感性はどうやったら育つのやら…。
0681デフォルトの名無しさん
2006/03/15(水) 23:01:12散々って、どれ?
0682デフォルトの名無しさん
2006/03/15(水) 23:01:42直接、変数に代入しろってことでは?
0683デフォルトの名無しさん
2006/03/15(水) 23:01:43当たり前のように嘘をつくのはやめたほうがいい。
0684デフォルトの名無しさん
2006/03/15(水) 23:02:48うそじゃないでしょ。
詰める派の人は、上でウソを書いてるけど。
0685デフォルトの名無しさん
2006/03/15(水) 23:03:38あ、そっか サンクス
0686デフォルトの名無しさん
2006/03/15(水) 23:04:33なんだ、文盲なのか。
それでそんなに空白に拘るのか。
はいはいそうかそうか。もういいや俺コイツ飽田。
0687デフォルトの名無しさん
2006/03/15(水) 23:04:40嘘じゃないと思えるのなら、単にコードも本も大して読んで無いってことかな?
0688デフォルトの名無しさん
2006/03/15(水) 23:05:36詰めた方がみやすいときにバカのひとつ覚えで空けているコードを見るとヘタだなぁと思うね。
もちろんその逆も。
0689デフォルトの名無しさん
2006/03/15(水) 23:06:060690デフォルトの名無しさん
2006/03/15(水) 23:07:24部屋の中もいろいろなものがごちゃごちゃ散らかってるんだろうな。
机の上も常時モノでいっぱいww
0691デフォルトの名無しさん
2006/03/15(水) 23:09:38そもそも、詰める派なんているのか?
妄想の中で敵を作って戦ってるだけじゃないのか?
0692デフォルトの名無しさん
2006/03/15(水) 23:11:550693デフォルトの名無しさん
2006/03/15(水) 23:12:46じゃ、詰めて書いてある本って?
0694デフォルトの名無しさん
2006/03/15(水) 23:16:05ちゃんと例をあげてるじゃん。
0695デフォルトの名無しさん
2006/03/15(水) 23:21:45重箱の隅をつつくような・・・と
0696デフォルトの名無しさん
2006/03/15(水) 23:22:48ストラウストラップだけ?
0697デフォルトの名無しさん
2006/03/15(水) 23:23:58「if ( p1[(p2 - p1 + 1) / 2] < v ) { /* */ }」? もっと空けるの?
0698デフォルトの名無しさん
2006/03/15(水) 23:24:110699デフォルトの名無しさん
2006/03/15(水) 23:25:520700デフォルトの名無しさん
2006/03/15(水) 23:26:280701デフォルトの名無しさん
2006/03/15(水) 23:27:04注意力が足りないんじゃないかと。
0702デフォルトの名無しさん
2006/03/15(水) 23:28:30なんかはっきり書けない事情でもあるの?
0703デフォルトの名無しさん
2006/03/15(水) 23:33:220704デフォルトの名無しさん
2006/03/15(水) 23:36:510705デフォルトの名無しさん
2006/03/15(水) 23:38:09>>697
配列添字部分は式によっては詰めるね。俺は。
//
if (p1[(p2-p1+1)/2] < v)
{
}
0706デフォルトの名無しさん
2006/03/15(水) 23:39:00キモッ・・
吐きそう。
0707デフォルトの名無しさん
2006/03/15(水) 23:40:00このまえニュー速で、コンピュータ関係のスレで、それ言ってるヤツがいたね。
C++で、関数の途中で宣言するのやめろとか。
本とか一切読まないのかね、ああいうのって。
0708デフォルトの名無しさん
2006/03/15(水) 23:40:32俺もよく途中で万歳した奴の尻拭いとかするけどそういうコードは今まで
すべて例外なく詰めて書かれていた。
0709デフォルトの名無しさん
2006/03/15(水) 23:43:33一人しかいない。
0710デフォルトの名無しさん
2006/03/15(水) 23:44:47俺以外にも、最低一人はいるよ。
0711デフォルトの名無しさん
2006/03/15(水) 23:45:07あのな。そりゃ偏見ってやつだ。
会社の中の人間のソースコードなんぞ評価せず、
もっと世界のうまい人のソースコードをみてみれ。
0712デフォルトの名無しさん
2006/03/15(水) 23:45:270713デフォルトの名無しさん
2006/03/15(水) 23:49:39著名なプロダクツのソースで、詰めて書いてあるやつって?
0714デフォルトの名無しさん
2006/03/15(水) 23:49:42if( x == 7 ) { /* 8個置き終えた */
printf( "Answer\n" );
printboard();
} else { /* 一つ右側について調べる */
for( z=0; z<8; ++z ) {
tryqueen( x+1, z );
}
}
0715デフォルトの名無しさん
2006/03/15(水) 23:51:100716デフォルトの名無しさん
2006/03/15(水) 23:52:00いや、つめるか、つめないかは左程、重要ではないといいたい。
うまい人でも詰める人は詰めるし、詰めない人は詰めないといいたい。
具体的に誰と言われると、探すのめんどくさいから書かないが。
0717デフォルトの名無しさん
2006/03/15(水) 23:52:22C++の超入門書ですら必要になってから宣言しろって書いてあるのに。
0718デフォルトの名無しさん
2006/03/15(水) 23:52:250719デフォルトの名無しさん
2006/03/15(水) 23:53:19ところでずっと不思議に思ってるんだけど、
「常に空白をあけるわけではない」を「詰めて書いてある」と誤読する
理由がわからない。
0720デフォルトの名無しさん
2006/03/15(水) 23:53:40> 具体的に誰と言われると、探すのめんどくさいから書かないが。
すごいレアだから、探せないのでは?
0721デフォルトの名無しさん
2006/03/15(水) 23:54:32詰めたり空けたりしてるやつもなかなか出てこないね。
0722デフォルトの名無しさん
2006/03/15(水) 23:55:05他人にそれを強制まではしないな。
読みにくいとまでは感じないからだけど。
1000行超える関数が多用されてて
先頭で wk とか t とか n とか言った名前の変数がたくさん宣言されてて
変数の説明をするコメントがなくって
wk があらゆる箇所で参照・書き換えされてて
50行くらいのロジックが繰り返し出てくるのに関数になってなくて
switch-case で default 句がないのにその説明すら書いてないことに比べたら
二項演算子の左右の空白なんてどうでも良くなる。
0723デフォルトの名無しさん
2006/03/15(水) 23:55:10それはいっぱいあるでしょ。
0724デフォルトの名無しさん
2006/03/15(水) 23:55:36if のあとを空けないのって、ヘタな日本人に多いね。
0725デフォルトの名無しさん
2006/03/15(水) 23:57:16たとえば?
0726デフォルトの名無しさん
2006/03/15(水) 23:57:24じゃあ、君が探してみれば?君がうまいと思ってるコードの書き方のプロダクツとやらを。
だるいだろ?
0727デフォルトの名無しさん
2006/03/15(水) 23:58:35他人が読む場合のことを考えているか考えていないかに過ぎない。
空白入れない奴は他人が読みやすいかどうかなんてどうでもいい奴が多いからろくでもない奴が多い。
自分で上手いと思っていても他人からしたら糞コード。
0728デフォルトの名無しさん
2006/03/15(水) 23:59:270729デフォルトの名無しさん
2006/03/15(水) 23:59:51関数名の後ろは詰める
逆でもいいけど
0730デフォルトの名無しさん
2006/03/16(木) 00:00:18とりあえずLinuxのカーネル(つかドライバ)コードなんかそんな感じ。
0731デフォルトの名無しさん
2006/03/16(木) 00:00:38linux,FreeBSDのカーネルとか。
0732デフォルトの名無しさん
2006/03/16(木) 00:02:06属性から書くか操作から書くかの論争並に不毛極まりないな。
0733デフォルトの名無しさん
2006/03/16(木) 00:02:160734デフォルトの名無しさん
2006/03/16(木) 00:03:30全部空けているという証明にはならない。
0735デフォルトの名無しさん
2006/03/16(木) 00:04:06>他人が読む場合のことを考えているか考えていないかに過ぎない。
詰めて書くほうが読みやすいと思って、俺はあえて詰めて書いてるけど。
詰めて書いてる人も「相手の読みやすさをまったく考えてない」わけではないと思う。
つーか詰めたほうが読みやすくね?
これはもう好みの問題だと思うのだが。
詰めた奴だって、相手・自分にとって読みやすいと思って詰めてるわけで。
0736デフォルトの名無しさん
2006/03/16(木) 00:05:140737デフォルトの名無しさん
2006/03/16(木) 00:07:19大昔のCの入門書なんかだと詰めないとか改行せずに{とかっていうのが多い。
ようは古臭い奴らなのかも。
当然考えも古臭い。だから糞が多い。
納得。
0738デフォルトの名無しさん
2006/03/16(木) 00:07:40好みの問題ってことになるけど、まともな本やプロダクツはほとんど、
空けて書いてる。
0739デフォルトの名無しさん
2006/03/16(木) 00:08:36で、最近の入門書はどうなんだ?
古臭くないから糞じゃないんだよな?
0740デフォルトの名無しさん
2006/03/16(木) 00:09:45で、まともな本やプロダクツってなんだ?
もし、空けて書いてある本とか言ったら殺すぞw
0741デフォルトの名無しさん
2006/03/16(木) 00:10:12まぁ昔よりはましなんじゃないか?
0742デフォルトの名無しさん
2006/03/16(木) 00:10:240743デフォルトの名無しさん
2006/03/16(木) 00:10:41たとえば?
0744デフォルトの名無しさん
2006/03/16(木) 00:10:56ギャハww
ブチ切れじゃんww
0745デフォルトの名無しさん
2006/03/16(木) 00:12:09というか別に君の周りでヘタだった奴がたまたま詰めて書いてる奴だった。って理由だけで、
全世界の詰めてる人間をヘタ扱いするのが謎。
0746デフォルトの名無しさん
2006/03/16(木) 00:12:16あなたの持ってる本ってどんなの?
ちょっと確認してみてよ。
空いてるだろうから。
0747デフォルトの名無しさん
2006/03/16(木) 00:13:00ニューメリカルの影響か知らんけど、
数値計算系は詰める傾向が多いね。
大多数は、基本は離して、ダラダラしてきたら適所で詰めるってのじゃない?
0748デフォルトの名無しさん
2006/03/16(木) 00:13:13まぁ言語の本じゃないけど誰もが認める名著のAdvancedWindowsのサンプルソースとか。
0749デフォルトの名無しさん
2006/03/16(木) 00:14:10周囲っていうか、世間で評価されてる本やプロダクツは空けて書いてるよ。
0750デフォルトの名無しさん
2006/03/16(木) 00:16:300751デフォルトの名無しさん
2006/03/16(木) 00:16:33> 大多数は、基本は離して、ダラダラしてきたら適所で詰めるってのじゃない?
大多数は、空けるのが基本だよ。
0752デフォルトの名無しさん
2006/03/16(木) 00:17:130753デフォルトの名無しさん
2006/03/16(木) 00:18:02それができない。。。
0754デフォルトの名無しさん
2006/03/16(木) 00:18:45理由
・厨房のコードの90%は空白を空けて書いてある。
0755デフォルトの名無しさん
2006/03/16(木) 00:19:110756デフォルトの名無しさん
2006/03/16(木) 00:20:07空けて書いてある本意外は、空けたり詰めたりで書いてあるんじゃないか?
空けて書いてある本がいくつ列挙されているか知らんがw
0757デフォルトの名無しさん
2006/03/16(木) 00:20:55逆。詰めて書く奴はすべてヘタであることを証明してくれ。
「詰める奴はヘタだ!」と決め付ける態度を取るなら、
世界のソースを全部みて、詰めて書く奴がすべてヘタであることを証明してからにしろよ。
それを調査してはじめて「詰める奴はヘタだ!」っていえる言葉だと思うぞ。
俺の周りがそうだったから、とかそんな理由だったらあまりにも失礼。
0758デフォルトの名無しさん
2006/03/16(木) 00:22:29あなたの持ってる本で、空けたり詰めたりしてる本って何冊ある?
0759デフォルトの名無しさん
2006/03/16(木) 00:22:54『プログラミング作法』は適所詰めることを推奨してるよ
>>753
いや、だから『ニューメリカル・レシピ・イン・シー』とか読んだらアンタ卒倒するんないの。
この本のコードの本当に酷いのは無理やり配列を1から始めてるところだけど。
0760デフォルトの名無しさん
2006/03/16(木) 00:25:34いくら例を示しても無視して自分の主張書くだけだから。
0761デフォルトの名無しさん
2006/03/16(木) 00:29:42Icanflytennis.とか言われても分かり難いだろ?
0762デフォルトの名無しさん
2006/03/16(木) 00:30:12(A) opの左右は必ず空ける。
(B) opの左右は基本的に空ける。場合によって詰める。
(C) opの左右は基本的に詰める。場合によって空ける。
(D) opの左右は必ず詰める。
という4パターンがあるが、ほとんどのやつはBかCだろ?(おれはB。)
演算子によって使い分けるやつもいると思うし(例えば&&と||が混在する式では&&の左右は詰めるとか)。
で、頑張ってるやつはAか? それともDに対して文句たれてるんのか?
Dなんかいねぇと思うぞ。
0763デフォルトの名無しさん
2006/03/16(木) 00:31:410764デフォルトの名無しさん
2006/03/16(木) 00:32:37プログラミング作法ってカーニンハンのやつ?
たしか会社にあったから、見てみるよ。
ソフトウェア作法のほうでは、全部空いてるようだけど。
0765デフォルトの名無しさん
2006/03/16(木) 00:36:25つlibvorbis
0766デフォルトの名無しさん
2006/03/16(木) 00:36:45「場合によっては詰める|空ける派」はとりあえずほかと違ってる部分を見つければいい。
0767デフォルトの名無しさん
2006/03/16(木) 00:37:13(まともなのは)
0768デフォルトの名無しさん
2006/03/16(木) 00:38:580769デフォルトの名無しさん
2006/03/16(木) 00:40:12そのあたりは、だいたい一貫してるのから、そんなに大変じゃないよ。
ストラウスとラップは、一貫してないけど。
0770デフォルトの名無しさん
2006/03/16(木) 00:40:44これのどこがわかりやすいんだ?w
I c a n f l y t e n n i s
0771デフォルトの名無しさん
2006/03/16(木) 00:41:370772デフォルトの名無しさん
2006/03/16(木) 00:42:190773デフォルトの名無しさん
2006/03/16(木) 00:42:220774デフォルトの名無しさん
2006/03/16(木) 00:45:56たいていの整形ツールは、演算子の前後に空白を入れない設定も出来る。
0775デフォルトの名無しさん
2006/03/16(木) 00:47:440776デフォルトの名無しさん
2006/03/16(木) 00:48:59その場合は、一貫して詰めたコードになる?
それとも、空けたり詰めたり、ルールで指定できる?
0777デフォルトの名無しさん
2006/03/16(木) 00:50:44(B) 3
(C) 0
(D) 0
(AHO) 1 (>>770)
0778デフォルトの名無しさん
2006/03/16(木) 00:51:14ですが何か?詰めても見易いよ。
0779デフォルトの名無しさん
2006/03/16(木) 00:52:24ほんとだ。
boostは空けたり詰めたりだね。
0780デフォルトの名無しさん
2006/03/16(木) 00:53:55ものによるな。
オプソものとかでいわゆるGNUスタイルで納品したほうが良さそうなのは
indentかけることもある(手でGNUスタイル書くのが苦痛だから)。
0781デフォルトの名無しさん
2006/03/16(木) 00:54:08そこだけ小さいフォントを使うってことは空白入れてるようなもんじゃない?
そのままだと見辛いから小さいフォント使ってるんでしょ?
0782デフォルトの名無しさん
2006/03/16(木) 00:56:58>>770は数字の100とかを1 0 0 って書く奴だと思われ
0783デフォルトの名無しさん
2006/03/16(木) 00:57:35それは単に整形ツールでそうなっただけのことであって、
それが良いコードというわけじゃないんだよな。
0784デフォルトの名無しさん
2006/03/16(木) 00:58:30適切に空白を入れたり詰めたりしろってこった。
0785デフォルトの名無しさん
2006/03/16(木) 01:00:03ODEは空けたり詰めたり
quake3は空けたり詰めたり
rubyは空けたり詰めたり
pythonは空けたり詰めたり
もう漁るの飽きた。やっぱある程度の成果物は
徹底して詰めてるor空けてるのはほとんどないんじゃないの?
0786デフォルトの名無しさん
2006/03/16(木) 01:01:43二項演算子と識別子に出てくる文字種は基本的に異なるから>>761は意味ねぇよ。
0787デフォルトの名無しさん
2006/03/16(木) 01:06:11その部分の担当者が徹底して空ける人だったり徹底して詰める人だったりする場合もある。
0788デフォルトの名無しさん
2006/03/16(木) 01:06:59aaaa( bbbb cccc dddd )eeee.
aaaa(bbbb cccc dddd)eeee.
こんな括弧のつけ方しないもんな
普通はこうだよな。
aaaa (bbbb cccc dddd) eeee.
0789デフォルトの名無しさん
2006/03/16(木) 01:08:120790デフォルトの名無しさん
2006/03/16(木) 01:09:18それこそ、ほとんどが小規模なプロダクツだろうし。
0791デフォルトの名無しさん
2006/03/16(木) 01:39:360792デフォルトの名無しさん
2006/03/16(木) 01:43:340793デフォルトの名無しさん
2006/03/16(木) 06:52:09コード書くとき、いちいち文法に関係ない空白をどうするかなんて考えもしないよ?
他人に読んでもらうために・・・・って他人のコード読むのに空白なんて何の支障にもならないと思うのだが?
プログラミングってのは、機能に名前を付けてゆく作業だから、肝心なのは名前付の方。
機能は名前通りに実装されていればそれでいいわけで
実装である演算子のレベルまでいきなり読むわけじゃない
0794デフォルトの名無しさん
2006/03/16(木) 07:10:42空白とは関係ない話だが
>if(p1[(p2-p1+1)/2]<v){ /* */ }
これが既に コナレているかどうかの方が大事かもね。
自分はこの手のコードを wihile(c=*p++){ /* */ } 程にはパターン化していないから
中間変数を入れて2行に別けてしまうな
{ cent=(p2-p1+1)/2 ;
if(p1[cent]<v){ /* */ }
}
中間変数を使う場合はC++でもブロックを書く事が多い
0795デフォルトの名無しさん
2006/03/16(木) 07:49:55大量に人を必要とする所ほど、人が居つかない。
慢性的なデスマーチ、疲弊し去ってゆく兵と補充される兵。
その回転の為に「他人が読めるコード」を強制しようと、
コーデングルール他、訳の判らない規約が作られ、
結果それがさらにプログラマの体力を奪い、回転を早める。
そういう現場では人もコードも使い捨て、
コードを使い捨てたくないと作った規約が余計にコードを使い捨てさせる事になってゆく矛盾がそこにある。
まあしかし、この矛盾の根っこは深く、プログラマレベルではどうしようもない。
キツイ規約は労働の証。 労働契約は努力義務でしかない。
いつまでも労働では搾取されるばかり、どこかで自分もまた転回する事が必要なのだろう
0796デフォルトの名無しさん
2006/03/16(木) 11:32:47俺はMFCは世界最高の技術者が書いたと信じてまねてたからなw
今はJoel de Guzmanまねてるよ
見た目だけなw
0797デフォルトの名無しさん
2006/03/16(木) 11:36:28今は一時的に使わないコードだけどコンパイルはしておきたい(≒メンテナンスしておきたい)場合は敢えて
if (0) {
...;
}
ってことやるけどそれも勘弁して欲しい?
0798デフォルトの名無しさん
2006/03/16(木) 12:05:37つCVS, Subversion, VSS, GNU arch, ...
0799デフォルトの名無しさん
2006/03/16(木) 12:07:33てことは30%も他人に手が入るのに独善的なあなたみたいな人がいるんだね。
ソースが汚い分、ドキュメントやコメントを多く書いて時間稼いでるんだね
0800デフォルトの名無しさん
2006/03/16(木) 12:32:28そんな女々しいコードは嫌だ。
0801797
2006/03/16(木) 12:33:45現場で必要なテストコードなんで、入れておきたいのですよ。
最近のコンパイラならエラーチェックだけして出力には影響しないところが味噌でね。
0802797
2006/03/16(木) 12:35:52女々しいっすか……
0803デフォルトの名無しさん
2006/03/16(木) 12:47:19だったらif (0)じゃなくてif (DEBUG)とかしてDEBUGを別に定義したりしない?
(プリプロセッサ通せば一緒だけど、ここはコードの話だから)
DEBUGを変数(debug)にして外部から与えるようにすれば、再コンパイルの必要もないし。
if (0)のメリットがわからんです。
関係ないけどSunのJava Tech Tipsに、if (debug)は性能を劣化させないとかいう記事があったな
0804デフォルトの名無しさん
2006/03/16(木) 12:47:52切り替えればいいんじゃないかと。
現場でコンパイルする手間も省けるし。
0805デフォルトの名無しさん
2006/03/16(木) 12:53:240806797
2006/03/16(木) 13:01:30そそ、そんな感じで。
現場で「ちょっと試してよ」に対応するコードとか。
ある程度長期生き残るものならマクロで分岐するか>803のようにするんですが。
0807デフォルトの名無しさん
2006/03/16(木) 13:51:58他人のことを考えない独善的な人間だから思考が1人で完結してる。
>> 他人に読んでもらうために・・・・って他人のコード読むのに空白なんて何の支障にもならないと思うのだが?
客観性まるでなし。
こういう奴は空白以外の部分でも糞コードなのは間違いない。
0808デフォルトの名無しさん
2006/03/16(木) 13:56:28あなたの書き込みを読むと、全ての批判はご自分に該当するように思えますが、たぶん眼鏡が曇ってるのでしょうね。
0809デフォルトの名無しさん
2006/03/16(木) 17:19:21ほっとけよ
0810デフォルトの名無しさん
2006/03/16(木) 17:21:24汚いソース読まされてイライラさせられた人じゃないとわからんよ。
0811デフォルトの名無しさん
2006/03/16(木) 17:33:42空白とかスタイルのせいでイライラするような事はないよ。
0812デフォルトの名無しさん
2006/03/16(木) 17:36:09/⌒ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ゜Θ゜)< そうでもないよ
| ∵ つ \__________
| ∵ |
\_/
他人の考え方は読める。
ジェネレートされたコードは考えも伝わってこないからツライ。
0813デフォルトの名無しさん
2006/03/16(木) 18:20:36> aaaa( bbbb cccc dddd )eeee.
こんなのが山盛りのソースのメンテナンスが、俺に回って来た!
0814デフォルトの名無しさん
2006/03/16(木) 18:21:43他人のコードを読むといっても色々だけど読まされるとするなら
1、単に該当箇所の修正
2、新規に作るが動作仕様がソースからしか判らないと言われた
3、指導者としての立場
があると思うが、
1なら、基本的に触らないのがコツ。 修正ではなく、とにかく追加してゆく。
その後の人はさらに大変になるだろうが、そんな事はこっちの仕事じゃない
2なら1ファイル毎に、実際に動作させてゆく。 それが必要とする関数をエミュレートというか適当にでっち上げるような感じね
組み込み系なら、実行環境もどきを最終的に作ってしまう事になる
3なら、もっとおおらかにいった方がいいよ
0815デフォルトの名無しさん
2006/03/16(木) 18:22:110816デフォルトの名無しさん
2006/03/16(木) 18:30:590817デフォルトの名無しさん
2006/03/16(木) 18:36:44読み込んだら自動的に自分の好みの方法で表示して
保存するときに勝手に規約に沿った形にすれば良いだけなんだから。
0818デフォルトの名無しさん
2006/03/16(木) 18:41:53だったらプログラマもやめればいいのに
0819デフォルトの名無しさん
2006/03/16(木) 18:43:15好きなスタイルのindentのオプションは何なの?
0820デフォルトの名無しさん
2006/03/16(木) 19:17:25コンパイラのオプションにマクロシンボル定義するオプションがあるだろ?(bccだと-D)
それ使ったほうがよくね?
0821デフォルトの名無しさん
2006/03/16(木) 20:08:37switch(i){
case 1:
/* なにかコード */
break;
case 2:
/* 別のコード */
break;
/* 以下略 */
}
}
お前はfor文というものをどう考えているのか問い質したくなる。
0822デフォルトの名無しさん
2006/03/16(木) 20:13:06これ見にくいか?
0823デフォルトの名無しさん
2006/03/16(木) 20:13:57久々にまともな「ヘタだなぁ」の例で嬉しい
0824デフォルトの名無しさん
2006/03/16(木) 20:25:13俺も普段は空けるが、()内が短い場合はそんな感じ。
ただし、for (..) {だけど
0825デフォルトの名無しさん
2006/03/16(木) 20:32:55if(...) {
meirei1();
meirei2();
} else {
meirei3();
}
と
if(...) {
meirei1();
meirei2();
} else {
meirei3();
}
0826デフォルトの名無しさん
2006/03/16(木) 20:42:540827デフォルトの名無しさん
2006/03/16(木) 20:56:34こんな感じのコードは良く書く
for(int i = 0; i < 16; ++i)
if(HogeFlag & (1<<i) )
switch(i){
case 0:
/* なにかコード */
break;
case 1:
/* なにかコード */
break;
case 2:
/* 別のコード */
break;
/* 以下略 */
}
0828デフォルトの名無しさん
2006/03/16(木) 21:11:170829デフォルトの名無しさん
2006/03/16(木) 21:20:30意味ないよ。 1個づつ if 文書くのと等価。 でも書いちゃうんだよ
0830デフォルトの名無しさん
2006/03/16(木) 21:33:36int main()
{
switch (0) {
case 0:
someFunc();
case 1:
otherFunc();
case 2:
moreFunc();
default:
break;
}
return 0;
}
0831デフォルトの名無しさん
2006/03/16(木) 21:54:30って言われたらそうすると思う。
0833デフォルトの名無しさん
2006/03/16(木) 22:13:52成程と思った
0834デフォルトの名無しさん
2006/03/16(木) 23:33:48は?それが何か?
0835デフォルトの名無しさん
2006/03/16(木) 23:54:17なんも思わないのか…… すごいな
0836デフォルトの名無しさん
2006/03/17(金) 00:09:45// 奇数の場合
if(value%2){
:
// 偶数の場合
}else{
:
}
というコメントの書き方は(特にelseのところで)途惑う。
0837デフォルトの名無しさん
2006/03/17(金) 00:27:32俺もなにが言いたいのかわからん。
someFuncの実装すら書いてないんだから、main()のその他の処理も端折って書いたと思った。
0838デフォルトの名無しさん
2006/03/17(金) 00:37:20if (value % 2) { // 奇数の場合
:
}
else { // 偶数の場合
:
}
としてるな。
0839デフォルトの名無しさん
2006/03/17(金) 00:59:04俺は
if(cond){
stmt;
}
else{
stmt;
}
ですね。
以前は
} else {
だったんですが、"else{ ... }" を一まとまりにした方が、
else (や else if) の評価の順番変える時とかに都合が良かったので。
0840デフォルトの名無しさん
2006/03/17(金) 01:01:410841デフォルトの名無しさん
2006/03/17(金) 01:24:04DB系のなんかの言語は、確かブロックの先頭にコメントが書けないので
そういうスタイルになる必然性があった希ガス。
0842デフォルトの名無しさん
2006/03/17(金) 01:46:070843デフォルトの名無しさん
2006/03/17(金) 01:52:27Workbooks("A.xls").Worksheets("Sheet1").Cells(1, 1).ClearContents
Workbooks("A.xls").Worksheets("Sheet1").Cells(1, 3).ClearContents
Workbooks("A.xls").Worksheets("Sheet1").Cells(2, 1).ClearContents
Workbooks("A.xls").Worksheets("Sheet1").Cells(2, 3).ClearContents
Workbooks("A.xls").Worksheets("Sheet1").Cells(3, 1).ClearContents
Workbooks("A.xls").Worksheets("Sheet1").Cells(3, 3).ClearContents
Workbooks("A.xls").Worksheets("Sheet1").Cells(1, 1) = Workbooks("B.xls").Worksheets("Sheet3").Cells(I, 3)
Workbooks("A.xls").Worksheets("Sheet1").Cells(1, 3) = Workbooks("B.xls").Worksheets("Sheet3").Cells(I, 4)
Workbooks("A.xls").Worksheets("Sheet1").Cells(2, 1) = Workbooks("B.xls").Worksheets("Sheet3").Cells(I, 6)
Workbooks("A.xls").Worksheets("Sheet1").Cells(2, 3) = Workbooks("B.xls").Worksheets("Sheet3").Cells(I, 8)
Workbooks("A.xls").Worksheets("Sheet1").Cells(3, 1) = Workbooks("B.xls").Worksheets("Sheet3").Cells(I, 9)
Workbooks("A.xls").Worksheets("Sheet1").Cells(3, 3) = Workbooks("B.xls").Worksheets("Sheet3").Cells(I, 12)
Else
Workbooks("A.xls").Worksheets("Sheet1").Cells(1, 1).ClearContents
Workbooks("A.xls").Worksheets("Sheet1").Cells(1, 3).ClearContents
以下省略。Then内の行数は実際の3分の1で書きました。
"B.xls"が修正された為正常に動かなくなり、私がメンテする羽目に。
約2画面分を覆いつくすコピペに背筋が凍りました。
0844デフォルトの名無しさん
2006/03/17(金) 01:55:42java 使ったプロジェクトで singleton 使ってるコードがあって
なぜかコンストラクタが protected だった。
コメントに「privateにすべきだが、テストのためにprotectedにする」
とか書いてあった。
何のためのテストだろうと不思議に思った。
0845デフォルトの名無しさん
2006/03/17(金) 01:58:36class A{};
class TestA : A{};
だろ?
protectedメソッドをテストするにはこうする必要がある。
0846デフォルトの名無しさん
2006/03/17(金) 01:58:460847デフォルトの名無しさん
2006/03/17(金) 02:05:39いや、そうじゃなくて。
もともと singleton として使うクラスで、
コード書いてる人も singleton パターン自体は知っている。
のに、テストするために protected にしてる。
普通はありえないけどパッケージ内から
ぼこぼこインスタンス立てまくれる。
それを制限するためのパターンなのに、
本末転倒だろうと。>何のためのテスト
0848デフォルトの名無しさん
2006/03/17(金) 03:43:230849デフォルトの名無しさん
2006/03/17(金) 10:36:29俺もたまにそうすることがある。
たとえば、CSVを char * の配列に入れたあとで、0、1、2の
カラムはそれぞれ何か違う処理をしないといけないが、3より
あとは全部同じ処理という場合、など。まあ、個別に書いても
いいんだけどね。for で回してもいいじゃない。人間だもの。
0850 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
2006/03/17(金) 11:56:510851デフォルトの名無しさん
2006/03/17(金) 12:08:50でも、マクロだと、あるいみ仕方ない面もあるね。
Workbooks("A.xls").Worksheets("Sheet1") で一旦変数に代入する程度はやるだろうけど
for 文で回してもそう判りやすくなるわけじゃないし
if 文の前に共通処理を吐き出しても、 Rtn の作成箇所から離れるのも嫌だし
0852デフォルトの名無しさん
2006/03/17(金) 12:42:44こういうものは名前付き領域のコピーで済ますとメンテは楽になる
ドキュメントがなくなると地獄が待っているが
0853デフォルトの名無しさん
2006/03/17(金) 15:39:43それともCスタイルが普通?
0854デフォルトの名無しさん
2006/03/17(金) 15:56:250855デフォルトの名無しさん
2006/03/17(金) 16:39:310856デフォルトの名無しさん
2006/03/17(金) 18:09:32if (logfile == NULL);
return;
まあ、logfile はログのファイル名が入っている char * なんだけど、
これをログを出力する関数の先頭でやっていて、一切のログが出力
されなくなった。
で、コンパイル後のコードが異様に小さいわアセンブリ言語まで
出力させてなんでこんなに小さいんだろうと、冗談抜きで3時間ほど
悩んで、10分ぐらい前にセミコロン発見。orz
こんなバグ作ったの何年ぶりだろう。
0857デフォルトの名無しさん
2006/03/17(金) 18:21:21コンパイラによってはreturn の後に警告が出るけど、出ないのもあるし
0858デフォルトの名無しさん
2006/03/17(金) 18:27:40if (logfile == NULL);{
return;
}
とか、やられたら意味ないがw
0859デフォルトの名無しさん
2006/03/17(金) 18:32:200860デフォルトの名無しさん
2006/03/17(金) 18:38:43コンパイラが警告一つ出さないってのもまた何とも。
実際こんなの必要になる時はないよなあ。for (...); とか while (...); なら
ループして繰り返すから意味のあるものが作れるが、 if (...); は一体どういう
時に必要となるのかが想像できない。
0861デフォルトの名無しさん
2006/03/17(金) 18:45:090862デフォルトの名無しさん
2006/03/17(金) 18:46:380863デフォルトの名無しさん
2006/03/17(金) 19:59:39ごく稀に
if (…)
;
else
なんたら
というコードを見かける。
判定条件を逆にすりゃいいのにと思うが、それなりの意図があるらしいw
0864デフォルトの名無しさん
2006/03/17(金) 20:40:43while(flag);
{
;
}
のコーディングスタイルだと{}あっても分かり難いです 昔泣きました
0865デフォルトの名無しさん
2006/03/17(金) 20:57:13コーディングスタイル関係ない。
0866デフォルトの名無しさん
2006/03/17(金) 21:20:130867デフォルトの名無しさん
2006/03/17(金) 21:25:250868デフォルトの名無しさん
2006/03/17(金) 21:56:17いや、机上で流してると目は見てても脳が読まない可能性はある。
て言っても、テストが付いてりゃ範囲は局所化されるから、あとは
デバッガでトレースしてみれば直ぐにみつかる類のバグだけどな。
0869デフォルトの名無しさん
2006/03/17(金) 22:17:230870デフォルトの名無しさん
2006/03/17(金) 22:35:43金儲け主義の教科書が学校を埋め尽くし、教育品質の低下を招く!?
意見は下記の公正取引委員会のページより
http://www.jftc.go.jp/info/p-comment.htm
4月17日締め切り。
0871デフォルトの名無しさん
2006/03/17(金) 22:46:01俺はデバッガ(gdb)も使ったのだが、いきなり関数の最後の } に飛ぶんだよ。
もう最適化されちゃってどこから飛んでるか分かんないの。(最適化を強制的に
させないオプション使ってコンパイルすれば良かったか?)
0872デフォルトの名無しさん
2006/03/18(土) 01:02:440873魚チョコ
2006/03/18(土) 01:47:49すまん。俺それ多用するわ。
・ == NULL とか if != 0 とか書くのマンドクセ。
・ if ( !li ) とか if ( !ill ) とか、何だよ、八卦かよ。
→ なるべく 0 と比較し、かつ 0 を省略。 ! もなるべく使わない。
→ 論理の融通がきかないので、 if ( p ) ; else { } 登場。
なんと if ( p ) { ... } else ; 役に立たないっつーか警告が出る else ; まで書いておくことも少なくない。あほだ。
0874魚チョコ
2006/03/18(土) 01:49:12手拍子で if ( p != 0 ) と書いちゃって消し損ねた。あほだ。
0875魚チョコ
2006/03/18(土) 01:49:510876デフォルトの名無しさん
2006/03/18(土) 01:50:030877デフォルトの名無しさん
2006/03/18(土) 02:00:38///長いコード
if( b == true )
{
}
このtrueは「俺はbool型を比較してるんだぞ」と強調するために書いている。
文句をいわれる筋合いなどないわ!
0878デフォルトの名無しさん
2006/03/18(土) 02:05:35○if(b==true)
0879デフォルトの名無しさん
2006/03/18(土) 02:13:440880デフォルトの名無しさん
2006/03/18(土) 02:42:090881デフォルトの名無しさん
2006/03/18(土) 03:42:36if(cond){ .. } か if(!cond){ .. } で良いと思う。
cond == true とかは時間の無駄というか
if の中なのに true 以外の何と比較するのだろう、と。
0882デフォルトの名無しさん
2006/03/18(土) 04:24:46...
bool b = i != 0;
0883デフォルトの名無しさん
2006/03/18(土) 06:30:160884デフォルトの名無しさん
2006/03/18(土) 06:34:21#define false 1
0885デフォルトの名無しさん
2006/03/18(土) 08:12:27for (;;) の方が好き。
0886デフォルトの名無しさん
2006/03/18(土) 08:29:160887デフォルトの名無しさん
2006/03/18(土) 08:34:10A:
goto A
のほうが好き。
0888デフォルトの名無しさん
2006/03/18(土) 08:40:53無限ループを作ろうとしたとき、本やネットなどで見たことなしに for (;;) で書いてた?
俺は while (1) で書いてて、後で for (;;) を知ったので逆の感覚だ
あれこれ言い合うほどのこだわりはないけど
#define ARRAY_INDEX1 1
#define ARRAY_INDEX2 2
#define ARRAY_INDEX3 3
(ry
#define ONE 1
こんなことやってるコード、現実にホントにあるんだねorz
0889デフォルトの名無しさん
2006/03/18(土) 08:55:47その名前だったらヘタだけど、意味がある名前なら連想配列感覚でいいかもよ
0890デフォルトの名無しさん
2006/03/18(土) 09:12:35if ((b == true) == true)
だったらこのほうがよいのでは?
0891デフォルトの名無しさん
2006/03/18(土) 09:17:40いや、分かりづらかったかもしれない
ループなら 1回で済ませられるのに
こんなん使ってずらずら並べてる箇所がいくつもあるんでつorz
>>890
if ( (bool) b )
はいかが?
0892デフォルトの名無しさん
2006/03/18(土) 09:20:34ぜんぜんOK
0893デフォルトの名無しさん
2006/03/18(土) 10:34:03関数の引数に参照を渡すのと参照渡しを混同しているのを見ると大丈夫か?と思う。
同じく参照型言語で
なんらかのオブジェクトへの参照をコレクションから取り出してそのプロパティなりメソッドなりを使ったあと
最後にコレクションに格納しなおしているのを見ると、なんも考えてないんだなと思う。
0894デフォルトの名無しさん
2006/03/18(土) 11:22:30if (((b == true) == true) == true)
だったらこのほうがよいのでは?
・・・という風にして、if (ブール値)なんだということを悟ってもらうのが
普段の教え方。
0895デフォルトの名無しさん
2006/03/18(土) 11:30:31筋が悪いな。
繰り返しを発見したらループにするのが鉄則だろう。
int ct = 0;
while(b = (b == true))
if(ct++ > 100000/*これくらいやっておけばほとんどのケースで十分*/){ puts("b == true"); goto finish; }
puts("b != false");
finish:
これで判定可能だ。
0896デフォルトの名無しさん
2006/03/18(土) 11:32:20変数や関数の名前が、たとえばisFoo()のように工夫されており、
ぱっとみで、ifの中はちゃんとブール値になっているなと分かるときは、
if(isFoo())でも良い。
もしvalueのように中身がブール値かどうか分からない名前の場合は、
if(value==true)する。
if((value==true)=true)なんてのは、最初のvalue==trueの時点で
ブール値だと明確になっているので必要ない。
0897デフォルトの名無しさん
2006/03/18(土) 11:33:09×if((value==true)=true)
○if((value==true)==true)
0898デフォルトの名無しさん
2006/03/18(土) 11:35:160899デフォルトの名無しさん
2006/03/18(土) 11:36:21bそのものがブール値だと明確になっていない(int bかも知れない)ので駄目。
b および bなんたら はブール値と命名規則で
決められているのならいいけど。
0900デフォルトの名無しさん
2006/03/18(土) 11:42:130901デフォルトの名無しさん
2006/03/18(土) 11:49:18txtUserIdとか、rdoMaleとか。
0902デフォルトの名無しさん
2006/03/18(土) 11:54:440903デフォルトの名無しさん
2006/03/18(土) 11:57:12>>877とか>>881に言ってくれ。
> if の中は条件式を評価するのだから
> if(cond){ .. } か if(!cond){ .. } で良いと思う。
「if の中は条件式」なので単体の変数がくるとは限らない。
condとは式、すなわち、i=1や、0<i && i<10なんて場合もありえる。
"cond"ではなく"checked"なんて名前ならif(checked){ .. }でいいが、
"cond"って名前ならcond==trueにするべきだ。
要は名前の問題。
でもチェックボックスのcheckedはチェックされた状態でも、
チェックされてない状態でもない、第三の状態(未入力?)が
あったりするんだよな。まあ名前の付け方が悪いんだが。
0904デフォルトの名無しさん
2006/03/18(土) 11:58:53C/C++を使う限りbがintだろうとchar*だろうと無問題。
それで混乱する奴は単に文法に不慣れなだけだろ。
0905デフォルトの名無しさん
2006/03/18(土) 12:02:17if (b) { でも、asmでは同じもんができあがるだから、
意図が明確な方がいいんじゃね?
0906デフォルトの名無しさん
2006/03/18(土) 12:04:06これ書いた奴がアホなのか何なのか読んでて不安になるから却下
0907デフォルトの名無しさん
2006/03/18(土) 12:04:14これ(ネタだろうけど)見て思い出した
Cのソース
#define TRUE 0
#define FALSE (-1)
既出?
0908デフォルトの名無しさん
2006/03/18(土) 12:05:05それは、Camel形式だと捉えれば無問題。
0909デフォルトの名無しさん
2006/03/18(土) 12:05:34それだけ見て、アホかどうかわからんが、
全体みりゃわかる
0910デフォルトの名無しさん
2006/03/18(土) 12:05:52>>890のほうがもっと意図が明確だと思わないのか?
0911デフォルトの名無しさん
2006/03/18(土) 12:10:330912デフォルトの名無しさん
2006/03/18(土) 12:16:460913デフォルトの名無しさん
2006/03/18(土) 12:21:00例えばリトルエンディアンで数が格納されたバイナリを読み込んで、
そのまま変数に格納しちゃってたりしてる奴。
リトルエンディアンなプロセッサじゃなきゃ絶対おかしくなる・・・
0914デフォルトの名無しさん
2006/03/18(土) 12:27:33>>890は、日本語で表現すると
まったく違う条件を書いていることに気がついてないの?
0915デフォルトの名無しさん
2006/03/18(土) 12:29:48要件がそうなってれば問題ないし、たいていのシステムではなってると思うけどね。
0916デフォルトの名無しさん
2006/03/18(土) 12:30:31異なるプロセッサで動かすことを要求されていなければ、問題ないだろう。
ネットワークに流すときは同一プロセッサ同士でも一応ネットワークバイトオーダに
変換してくれとは思うが。
0917デフォルトの名無しさん
2006/03/18(土) 12:30:56ビッグエンディアンで読む予定がないなら不要だろ。
プロジェクトの性格に関係なく最初から無駄にポータビリティを確保してる奴はアフォ。
0918デフォルトの名無しさん
2006/03/18(土) 12:32:31そうなのか・・・
なら私はあのプロジェクトから手を引いて、移植が失敗するのを見守るか・・・
0919デフォルトの名無しさん
2006/03/18(土) 12:34:33キミがいなくても、問題なく移植できると思う。
もし失敗するのなら、エンディアン云々以前の問題。
0920デフォルトの名無しさん
2006/03/18(土) 12:41:090921デフォルトの名無しさん
2006/03/18(土) 12:56:13本当にそう思うなら、理由を説明せよ。
0922デフォルトの名無しさん
2006/03/18(土) 12:58:11プログラマーとして就職したのに全然言ってることわかりません
怖くなってきた
0923デフォルトの名無しさん
2006/03/18(土) 12:59:37どう思う?
0924デフォルトの名無しさん
2006/03/18(土) 13:03:180925デフォルトの名無しさん
2006/03/18(土) 13:04:480926デフォルトの名無しさん
2006/03/18(土) 13:06:200927デフォルトの名無しさん
2006/03/18(土) 13:08:03ちょっと天狗になりかけてるプログラマが書きそうだな
0928デフォルトの名無しさん
2006/03/18(土) 13:30:09言語によるのだけど C 言語には論理型はなく 論理値もどきがあるだけ
if や && || では 0かどうかという比較になる
だから 代金が0でなければと読む事になる
0929デフォルトの名無しさん
2006/03/18(土) 13:36:03priceはブール値だとこの行だけでどして判断しなければならないのでしょうか?
っつーか、なんでブール値にこだわりたがるのかそこが分からん。
0930デフォルトの名無しさん
2006/03/18(土) 13:36:140931デフォルトの名無しさん
2006/03/18(土) 13:37:120932デフォルトの名無しさん
2006/03/18(土) 13:39:50新人君に一々説明するの大変そうですね
0933デフォルトの名無しさん
2006/03/18(土) 13:40:060934デフォルトの名無しさん
2006/03/18(土) 13:42:50if 文は論理型でなければいけないから始まって、
配列とポインタとは別のものですとか
0935デフォルトの名無しさん
2006/03/18(土) 13:43:320936デフォルトの名無しさん
2006/03/18(土) 13:43:49str = ""
str = str & "hoge"
str = str & "hage"
str = str & "hige"
:
というのは、もう止めてもいい頃だと思うぞ。
あまつさえこんな:
str = ""
str = str & "hoge" & vbCrLf
str = str & "hage" & vbCrLf
str = str & "hige" & vbCrLf
:
…のを書いて「デバッグ時に見やすい」と得々と語るのは
もう辞めてもいい頃だと思うぞ。
0937デフォルトの名無しさん
2006/03/18(土) 13:46:28if文が論理型でなければいけない言語ならコンパイル時に落とせよ、とか思う。
ところでそれは実体験に基づいてるの?「大変」って。
0938デフォルトの名無しさん
2006/03/18(土) 13:48:45だから、この場合は (スレの流れ的に)
if (price) {じゃなくて
if (price != 0) {とかにしろってことでしょ。
# 実際に価格でこんな比較することはないだろうけど
0939デフォルトの名無しさん
2006/03/18(土) 13:51:400940デフォルトの名無しさん
2006/03/18(土) 13:57:34if(b){...}
0941デフォルトの名無しさん
2006/03/18(土) 14:10:25実数値を0と比較してはいけない、って常識だな。
0942デフォルトの名無しさん
2006/03/18(土) 14:12:510943デフォルトの名無しさん
2006/03/18(土) 14:17:45実数でも 0を代入すれば0だよ。
巧く動かないのは
(cos(a)*cos(a)+sin(a)*sin(a)-1) == 0
とか
0944デフォルトの名無しさん
2006/03/18(土) 14:27:41> だから 代金が0でなければと読む事になる
はぁ? Priceはブール値ですよ?
0945デフォルトの名無しさん
2006/03/18(土) 14:30:240946デフォルトの名無しさん
2006/03/18(土) 14:30:33という文章に違和感が無い奴がいたなら、
日本語をやり直してください。
0947デフォルトの名無しさん
2006/03/18(土) 14:34:28という書き方はいいですが、
if(DEBUG_LEVEL) { ... }
という書き方はヘタだなぁと思う。
0948デフォルトの名無しさん
2006/03/18(土) 14:36:210949デフォルトの名無しさん
2006/03/18(土) 14:38:330950デフォルトの名無しさん
2006/03/18(土) 14:39:37へただなぁと思います。
0951デフォルトの名無しさん
2006/03/18(土) 14:39:440952デフォルトの名無しさん
2006/03/18(土) 14:45:06残り50切ってから気付いたの?www
0953デフォルトの名無しさん
2006/03/18(土) 14:47:100954デフォルトの名無しさん
2006/03/18(土) 14:48:28客は言語仕様を理解してるかどうかあやしいからな。
仕様書に沿ってないとなに言われるやら…
0955デフォルトの名無しさん
2006/03/18(土) 14:51:14Cなら「もし価格が0でなければ」だからなんら問題なし。
0956デフォルトの名無しさん
2006/03/18(土) 14:55:35好きではないけれど。
0957デフォルトの名無しさん
2006/03/18(土) 15:09:53if(price>0){を、どうせ同じだからと言って、
if(price){と書くの?
0958デフォルトの名無しさん
2006/03/18(土) 15:14:190959デフォルトの名無しさん
2006/03/18(土) 15:15:39というか
price欄==0 をその商品が無いとか、価格が決まっていないというような事に使ってるのだろう
基本的に0をマジックナンバーにするという発想なんだろうけど、
だったら配列も 1ベースにすりゃ良かったのになあと思うんだよね。
0960デフォルトの名無しさん
2006/03/18(土) 15:20:470961デフォルトの名無しさん
2006/03/18(土) 15:22:02Cの設計思想は高級アセンブラで、石の都合に合わせて作られてるんだから。
0962デフォルトの名無しさん
2006/03/18(土) 15:26:25それをポインタでこう書けばスマートだろという方向で 0かどうかなんて設計にしたんだろ。
「どうだpascalのサイズ付文字列よりスマートで格好いいだろ? 255文字なんて制限もないし」
みたいに
0963デフォルトの名無しさん
2006/03/18(土) 16:05:44どうして石の話になるんだ?
0964デフォルトの名無しさん
2006/03/18(土) 16:22:410965デフォルトの名無しさん
2006/03/18(土) 16:30:22比較結果でZフラグが立ち、Zフラグで分岐するかスキップする
0 と比較して分岐する
のどちらかがあるから0と比較するのは意味があるようだが、
が、大抵は同じコストで負数かどうかでも分岐出来る 負数がfalseでも良かったのでは?
配列については1ならバイトサイズのオフセットをコンパイル時に入れれば良く
実際、pascalなどは好きに出来て、コードを見れば静的に解決されており効率は落ちていない。
0966デフォルトの名無しさん
2006/03/18(土) 16:33:110967デフォルトの名無しさん
2006/03/18(土) 17:59:190968デフォルトの名無しさん
2006/03/18(土) 18:13:09なんとなく読みにくい日本語だな
0969デフォルトの名無しさん
2006/03/18(土) 18:18:300970http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 18:43:25もしくは64bitにネイティブ対応した置換ソフトないですか?
0971デフォルトの名無しさん
2006/03/18(土) 19:35:350972デフォルトの名無しさん
2006/03/18(土) 19:49:380973デフォルトの名無しさん
2006/03/18(土) 22:16:10Basic言語の中には真値が-1(全bit1)のものもあるから負数がfalseはまずいっしょ。
0974デフォルトの名無しさん
2006/03/18(土) 22:23:25Cでも配列とポインタが同じものと思われると困るのですが
0975デフォルトの名無しさん
2006/03/19(日) 00:06:550976デフォルトの名無しさん
2006/03/19(日) 00:46:1764bitネイティブに対応した置換? えと、たとえば俺の今使っている
Athlon 64 のマシンの Linux で動く sed とか?
0977デフォルトの名無しさん
2006/03/19(日) 00:46:510978デフォルトの名無しさん
2006/03/19(日) 01:48:05そいつ、いろんなスレに>>970をマルチポストしまくってるからレスしても見ないと思うよ。
0979デフォルトの名無しさん
2006/03/19(日) 02:32:27if((price > 100) == true) .. とは書かない。
if の中では論理比較してることが自明だから。
done が bool であるならば
if(done) .. は書くけど
if(done == true) .. とは書かないようにしてる。
bool はそれ自体で論理式だから。
プロジェクトの規約で後者が推奨されたことはないが
そう書けと言われればそれに従う。
0980デフォルトの名無しさん
2006/03/19(日) 06:57:33コメントさえもだ。
0981デフォルトの名無しさん
2006/03/19(日) 07:32:540982デフォルトの名無しさん
2006/03/19(日) 08:17:38if (price > 0) はどうなのかと…。
0983デフォルトの名無しさん
2006/03/19(日) 08:43:520984デフォルトの名無しさん
2006/03/19(日) 08:48:29なんでconstで固定されたって条件が増えてるの?
0985デフォルトの名無しさん
2006/03/19(日) 08:55:07そりゃルールは自分の有利なように変えるもの
0986デフォルトの名無しさん
2006/03/19(日) 08:58:130987デフォルトの名無しさん
2006/03/19(日) 09:01:16そりゃそうなんだけどさ
ポインタ変数つくって[10]ってアクセスしたら落ちるよな? C言語うろ覚えだけど
constとか関係あるのかな? と思って
0988デフォルトの名無しさん
2006/03/19(日) 09:25:020989デフォルトの名無しさん
2006/03/19(日) 09:25:21最適化により事前に削除されますた。
0990デフォルトの名無しさん
2006/03/19(日) 10:03:48const int *a;
int b[16];
void f(const int **);
void g(int (*)[16]);
このときf(&a)とg(&b)はコンパイルできるが、f(&b)とg(&a)はコンパイルできない。
0991デフォルトの名無しさん
2006/03/19(日) 11:46:11型が違うからな。
ていうか、誰か2のスレ作れ。
もうあるのか? Linuxのおちゅ〜しゃでお気に入り
しか見てないから他のスレの情况分からないが。
0992デフォルトの名無しさん
2006/03/19(日) 11:53:42> done が bool であるならば
重要な一言でましたね。
> if(done) .. は書くけど
こう書くにはdoneがboolであると知っていなければならない。
だけど、さっきの一言でわかるように、この行を見ただけでdoneがboolなのかはわからない。
> if( price > 100) .. は書くけど
これはこの行を見ただけでifの中がboolだと明確。
> if((price > 100) == true) .. とは書かない。
だからこうは書かない。当然。
> if(done) .. は書くけど
だけど、この行はこれを見ただけではわからない。
> if(done == true)
だからこう書くほうがいい。これはdoneがboolであることをこの行で明確化するのが目的。
目的を考えると、なにかと言ってくる、if((done == true) == true) を使っての反論は的外れ。
("明確でないもの"を明確にするのと、"明確になっているもの"を明確にするのとでは、意味がぜんぜん違う)
0993デフォルトの名無しさん
2006/03/19(日) 12:06:48言ってることは分かるのだけど
if(done)は明確である、つまり真偽値以外なら全部比較しろ という方がいいな
Cなら書けちゃうからしょうがないんだけどさぁ
0994デフォルトの名無しさん
2006/03/19(日) 12:06:510995デフォルトの名無しさん
2006/03/19(日) 12:49:14むしろ if (done == true) と書かれるとtrueとfalse以外の値をとりうる整数変数で、
非0でなくtrueと同値の場合だけを処理したいのかと勘ぐってしまいますが?
0996デフォルトの名無しさん
2006/03/19(日) 12:51:28コードは人間が読むものです。
0997デフォルトの名無しさん
2006/03/19(日) 12:52:49? 整数型とtrue/falseを比較すれば警告出るじゃん。
0998デフォルトの名無しさん
2006/03/19(日) 12:54:450999デフォルトの名無しさん
2006/03/19(日) 12:56:301000デフォルトの名無しさん
2006/03/19(日) 12:57:02例えば
char* const A = "abcde";
char B[] = "abcde";
この場合Aの指してる文字列は書き換え可能領域にあるとは限らない。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。