5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

ぱっと見て「ヘタだなぁ」と思うコード その2

1 :デフォルトの名無しさん:2006/03/19(日) 13:19:49
前スレの内容が途中で終わったのが気になったんで立ててみた

前スレ
ぱっと見て「ヘタだなぁ」と思うコード
http://pc8.2ch.net/test/read.cgi/tech/1141867015/

2 :デフォルトの名無しさん:2006/03/19(日) 13:23:04
・低水準の処理でもないのにshortが多様されてるソース

3 :デフォルトの名無しさん:2006/03/19(日) 13:24:15
・CでTRUE、FALSEを定義して使ってるソース

4 :デフォルトの名無しさん:2006/03/19(日) 13:38:59
・ifの中でbool変数とtrue/falseを比較していないソース

5 :デフォルトの名無しさん:2006/03/19(日) 14:22:06
>>前スレ996 & >>4
if文の条件式の中身がboolであることが明確でないと読みにくいとw
そんなことも明確化しなきゃいけないなら、変数そのものもboolかどうか明確化いたいよね?
blnDoneとでもしたらww

6 :デフォルトの名無しさん:2006/03/19(日) 14:23:14
ねたにまじれすしてるばかがいるという。。。

7 :デフォルトの名無しさん:2006/03/19(日) 14:26:11
falseと比較するやつは論理学の本呼んだほうがいいな
!の方がプリミティブなんだから

8 :デフォルトの名無しさん:2006/03/19(日) 14:28:40
!の最大の問題点は、見難いことだ。


9 :デフォルトの名無しさん:2006/03/19(日) 14:31:12
#define NOT !

10 :デフォルトの名無しさん:2006/03/19(日) 14:39:58
>>9
それいいなw
!って見落とすから == falseとかいつも書いてる

11 :デフォルトの名無しさん:2006/03/19(日) 14:40:44
見難いのはフォントの問題だろ
!だけ太くすれば解決する

12 :デフォルトの名無しさん:2006/03/19(日) 14:42:09
影響範囲を明確に表現したい場合はこんなのがいいかも知れない。

#define NOT(x) (!(x))


13 :デフォルトの名無しさん:2006/03/19(日) 14:44:29
!が見にくい? スレ違いだが、プロポーショナル使ってない?

14 :デフォルトの名無しさん:2006/03/19(日) 14:49:19
>>13
使ってない
上から流して読んでくと見落とす

15 :デフォルトの名無しさん:2006/03/19(日) 14:50:23
>>9
ここは「ヘタだなぁ」と思うコードを晒すスレじゃねーのかよ。

>>13
プロポーショナル使ってんのは>>11だけだ。
if (!ll_) と if (!l_)が混ざると固定でもいやなもんがある。

16 :デフォルトの名無しさん:2006/03/19(日) 14:51:49
Cで TRUE FALSEと true falseが存在するコード

17 :デフォルトの名無しさん:2006/03/19(日) 15:01:17
>>15
ああなるほど。そういう変数名だと分かりづらいね。確かに。
if(ll_||!l_) とか。

18 :デフォルトの名無しさん:2006/03/19(日) 15:01:48
GetMessageの戻り値

19 :デフォルトの名無しさん:2006/03/19(日) 15:13:39
>>if(!ll_)
ぱっと見て「ヘタだなぁ」と思うコード

20 :デフォルトの名無しさん:2006/03/19(日) 15:22:21
>>19
ヘタかどうかは微妙だよね。スタイルの問題だと思うんだ。
Cでは変数名をあまり長くしない文化があるし。

21 :デフォルトの名無しさん:2006/03/19(日) 15:35:16
>>9
おお、これ良いじゃん
前スレを含めて初めて有益なコードを見た気がする

22 :デフォルトの名無しさん:2006/03/19(日) 15:40:49
>>21
>>15

23 :デフォルトの名無しさん:2006/03/19(日) 15:46:00
str = "Timeout=%TIMEOUT_SEC%"
 :
str.Replace(str, "%TIMEOUT_SEC%", timeOut)

みたいなことを、C++とか.NETとかでやってるやつ。
Javaはしゃぁないかもしれん。

24 :デフォルトの名無しさん:2006/03/19(日) 15:47:52
boolサポートコンパイラではif内bool変数とtrue/falseを比較しないのは妥当ではないですか?
可読性もよいでしょう。

bool condition_is_true = true;
if (condition_is_true) doIfConditionIsTrue() ;

boolがないコンパイラ依存プロジェクトでcharをbool的型として扱う次のケースはいけません。

typedef char BooleanType;
#define TRUE 1
#define FALSE ~TRUE

以下のtestでNGとなります。

void doIfConditionIsTrue(const char *c) {printf(c)}
BooleanType condition_is_true = !FALSE, condition_is_false = FALSE;
if (condition_is_true == TRUE) doIfConditionIsTrue("OK.\n"); // OK?
if (condition_is_false) doIfConditionIsTrue("NG!\n"); // NGはでないはず

25 :デフォルトの名無しさん:2006/03/19(日) 15:49:23
SQLでDISTINCTを使っているクエリー。
必要なときもあるが、
ただ単に一意にし損ねているのに対して、バグ回避でつけているのをよく見る。
今の職場では特に、よく見る。

26 :デフォルトの名無しさん:2006/03/19(日) 15:52:12
C的には ==FALSE はいいが ==TRUE はNG。
(っつーか FALSEが~TRUEはないやろ。)

27 :デフォルトの名無しさん:2006/03/19(日) 15:57:00
CでTRUEやらFALSEやら使うのがダメ。

28 :デフォルトの名無しさん:2006/03/19(日) 15:58:02
> #define FALSE ~TRUE

・・・・

29 :デフォルトの名無しさん:2006/03/19(日) 15:59:51
じゃあWindowsのAPIはダメということで

30 :デフォルトの名無しさん:2006/03/19(日) 16:04:23
int toInt(string str){
 try{
  return (int)str;
 }catch(BadCastException e){
  return 0;
 }
}
のように、正常系で例外を使っているコード。

31 :デフォルトの名無しさん:2006/03/19(日) 16:48:11
調子に乗ってやってたけど、今思うと我ながらどうかとおもう
コード。
主に、 C++ で ! 演算子がオーバーライド ( ロード?どっちだっけ ? )
されているクラスのインスタンスの評価。

if( !!aaa )
{
    // aaa が true の場合のコード
}

32 :デフォルトの名無しさん:2006/03/19(日) 18:40:38
>>30
何がだめかわからん。

33 :デフォルトの名無しさん:2006/03/19(日) 19:14:21
if( a > b ) return 1;
if( a < b ) return -1;
return 0;

スマートに書けないものか。

34 :デフォルトの名無しさん:2006/03/19(日) 19:20:59
>>33
こうか?

return a > b ? 1 : (a < b ? -1 : 0);

これじゃ縮んだだけか・・・。


35 :デフォルトの名無しさん:2006/03/19(日) 19:21:37
>>33
書いて。

36 :デフォルトの名無しさん:2006/03/19(日) 19:26:54
return (a > b) * 2 - (a < b);

37 :デフォルトの名無しさん:2006/03/19(日) 19:28:50
説明が必要なコードは書かないでね。

38 :デフォルトの名無しさん:2006/03/19(日) 19:29:32
能書き垂れるだけで実際にモノが作れない奴はカス。

39 :デフォルトの名無しさん:2006/03/19(日) 19:30:42
>>34
これならどうだ?

return a < b ? -1 : (int)(a > b);

40 :デフォルトの名無しさん:2006/03/19(日) 19:31:33
return a-b;
でじゅうぶんだと思う

41 :デフォルトの名無しさん:2006/03/19(日) 19:31:58
>>37
スレタイにのっとってるだけだろ。

42 :デフォルトの名無しさん:2006/03/19(日) 19:33:30
>>33 が一番まともです。

アルゴリズムは、特定の言語の仕様
(たとえばbooleanのtrueをintにキャストすると-1になる)
に依存しないでください。

ありがとうございました。

43 :デフォルトの名無しさん:2006/03/19(日) 19:33:40
(a>b)-(a<b)でいいじゃん。

44 :デフォルトの名無しさん:2006/03/19(日) 19:34:01
>>40
仕様が違っています。

45 :デフォルトの名無しさん:2006/03/19(日) 19:38:53
>>36,43は比較を必ず2回しなきゃなんないし、説明も必要。
>>33のままでいいだろ。

46 :デフォルトの名無しさん:2006/03/19(日) 19:41:18
メモリが少ないとかCPUが遅いとかそういう制限がある場合を除いて、
コードはどういう動きをするかという説明を
そのままを置き換えただけにしてください。

コードは人間が読み書きするものなんですから。

47 :デフォルトの名無しさん:2006/03/19(日) 19:44:59
ぱっと見てへたな仕様だな

48 :デフォルトの名無しさん:2006/03/19(日) 20:07:27
>>33で充分スマートだと思うが。
あとは精々順序くらいか?1,-1,0よりは、-1,0,1や1,0,-1という順序のほうがちょっとまし。
まぁ難癖レベルだな。

こういう:「if(a >= 0 && a <= 10)」のは、こう:「if(0 <= a && a <= 10)」しろって思うけどね。

49 :デフォルトの名無しさん:2006/03/19(日) 20:09:37
ぱっと見て「ヘタだなぁ」と思うコード
>>36
>>39
>>40
>>43

50 :デフォルトの名無しさん:2006/03/19(日) 20:11:50
>>33
これが一番スマートだろ。見た瞬間理解できる。
他のはぱっと見て「ヘタだなぁ」と思うコードだな。

51 :デフォルトの名無しさん:2006/03/19(日) 20:14:22
>>48
寧ろ漏れは、
「喪前は"0がa以下"なのか?」と突っ込みたくなるが。

52 :デフォルトの名無しさん:2006/03/19(日) 20:21:39
誰しも一度は、0 <= a <= 10 こう書けないのか?って
思ったことがあると思う。実生活ではよくある表現だし。

> if(0 <= a && a <= 10)
これは、この実生活で自然な書き方のちょっと変形版。
&&の左右で分けて読むのではなく、全体で一つの意味と見る、
いわば慣用句的な使い方だと思う。

53 :デフォルトの名無しさん:2006/03/20(月) 01:48:22
0 <= a && a <= 10
は、
!(a < 0 || 10 < a)
とかきたくなるんです。いや一見ヘタですけど。

だって配列外参照予防として、1オリジンでなく0オリジンしますよね。
const size_t SIZE = 10;
int array[SIZE];
for(size_t i = 0; i < SIZE; ++i) do(array[i]); // ふつう0オリジン。(OK)
for(size_t i = 0; i <= SIZE - 1; ++i) do(array[i]); // 1オリジンしません。(その1)
for(size_t i = 1; i <= SIZE; ++i) do(array[i - 1]); // 1オリジンしません。(その2)

好みの問題です。
私見、1オリジンはコードがちょっと長いし、添字の調整とか間違えやすいのでダメでしょう。

54 :デフォルトの名無しさん:2006/03/20(月) 02:07:57
>>53
じゃあこれはどうする?
'0' <= ch && ch <='9'

55 :デフォルトの名無しさん:2006/03/20(月) 02:19:23
>>54
それはそのままがいいす。

56 :デフォルトの名無しさん:2006/03/20(月) 08:16:17
>>53
前半と後半の関係性がわからない。

57 :デフォルトの名無しさん:2006/03/21(火) 08:17:14
>>47
1票

58 :デフォルトの名無しさん:2006/03/21(火) 10:01:42
>>9
http://www-ccs.ucsd.edu/c/iso646.html
http://www.kuzbass.ru/docs/isocpp/lex.html#lex.digraph

59 :デフォルトの名無しさん:2006/03/21(火) 19:27:31
>>53
「だって」以降の文が繋がってない。

ぱっとみてヘタと分かる文章の好例ですな。

60 :デフォルトの名無しさん:2006/03/22(水) 18:10:01
だってだってだって、だってだってなんだもん

61 :デフォルトの名無しさん:2006/03/22(水) 18:56:07
 /  l⌒l   O | ̄| O  ヽ   ̄ ̄/    ̄ ̄/    ‐┼‐  ─‐ _|_   ‐┼─   /
 |   |  |    / |    |    lノ ー   lノ ー   ‐┼‐       /   / __| ヽ  |  \  
 ヽ、. |  |    ├ー┤   ノ    ノ      ノ      (___   (___  / し  / (丿\  し

62 :デフォルトの名無しさん:2006/03/22(水) 18:56:52
あんた、あたしのこと「あんたあんた」ゆうけど、あたしもあんたのこと「あんたあんた」って
ゆわへんから、あんたもあたしのこと「あんたあんた」ゆわんといてなーあんた!

63 :デフォルトの名無しさん:2006/03/22(水) 23:01:52
>>62

  [゚д゚] デフラグガカンリョウシマシタ
 /[_]ヽ
  | |
、、、「「「」」」あああああああああああああいうかけこここしししたたたたたたたた
たたたたたっててととととどなのののへももゆゆゆらわわんんんんんんんんんんんんー!


64 :デフォルトの名無しさん:2006/03/22(水) 23:27:18
>>63
それはソートではないのか?w

65 :デフォルトの名無しさん:2006/03/22(水) 23:53:17
>>52
> 誰しも一度は、0 <= a <= 10 こう書けないのか?って
> 思ったことがあると思う。

実際そう書いてはまった事がある…。

まあ、遠い昔だが。

66 :デフォルトの名無しさん:2006/03/23(木) 00:25:10
>>64

    [ #゚д]y-~~~
    /[へへ
36>>いかそでなのははれソトー?w


67 :デフォルトの名無しさん:2006/03/23(木) 00:31:37
>>65
Cでそれが期待通りにならないのは(言語仕様のシンプルさが失われるので)分かるが
Javaならそういう表記も可でもよかった気もする

68 :デフォルトの名無しさん:2006/03/23(木) 03:13:01
>>67
Java は C と C++ のプログラマを引っ張り込むためにわざとそっくりな
状態にしたんだろう。


69 :デフォルトの名無しさん:2006/03/23(木) 09:58:31
a >= 0 && a <= 10 の代わりに a in [0, 10]とか、
a >= 0 && a < 10 の代わりに a in [0, 10)とかできたらいいのにね。

70 :デフォルトの名無しさん:2006/03/23(木) 10:01:26
>>69
つboost::numeric::interval

71 :デフォルトの名無しさん:2006/03/23(木) 13:03:46
最近boostを挙げるやつが多いけどboostってSTLほど使ってる人口多くないよな?

72 :デフォルトの名無しさん:2006/03/23(木) 17:32:46
>>69
PASCAL に似たようなのなかったっけ? a in 10..20 のような書き方。


73 :デフォルトの名無しさん:2006/03/23(木) 18:56:28
>>72
C系以外はほとんど出来ると思うぞ
特にスクリプトで出来ないのは無い

74 :デフォルトの名無しさん:2006/03/23(木) 20:10:08
>>73
え? でも Perl にはないのでは? あったっけ? (Perl は C 系?)


75 :デフォルトの名無しさん:2006/03/23(木) 23:07:00
ほとんどの言語にはないだろ。

おれは、SQL (Between 演算子) しか知らん。

76 :デフォルトの名無しさん:2006/03/23(木) 23:13:11
(1..10).include? x
Rubyならこんな感じで 誰か他の言語お願い

77 :デフォルトの名無しさん:2006/03/23(木) 23:24:11
Haskellならこんな感じかな?

  elem x [1..10]

78 :デフォルトの名無しさん:2006/03/23(木) 23:56:54
Perl にも範囲演算子はあったはず。

79 :デフォルトの名無しさん:2006/03/24(金) 00:03:41
文法の問題であって書き方の問題じゃないんだけど、
switch (sh 系なら case) 構文はもう少しどうにかならんかったものか。

・C/C++
 break がないとフォールスルーを行うが、
 それを意図するケースは殆どなく、バグの温床。

・Java
 愚直に構文を引き継いだが何の利点もない。

・C#
 フォールスルーを許さない仕様は評価できるが、
 だったら break; とか書かせるな。

・sh
 ;; で締めなくても、次の ラベル) で判別出来なかったものか。


80 :デフォルトの名無しさん:2006/03/24(金) 00:14:17
>>79
仕様です

81 :デフォルトの名無しさん:2006/03/24(金) 01:41:02
>79
>・C/C++
> break がないとフォールスルーを行うが、
> それを意図するケースは殆どなく、バグの温床。

case A:
case B:
 //A 又は B の時


82 :デフォルトの名無しさん:2006/03/24(金) 08:48:49
>>81
そんなケースがほとんど無いっつってんだろ!
池沼かお前は!

83 :デフォルトの名無しさん:2006/03/24(金) 09:42:15
いや、普通にあると思うのだが。

84 :デフォルトの名無しさん:2006/03/24(金) 10:25:09
82の方が池沼に見えるけどなぁ
 
普通に使わんか?

85 :デフォルトの名無しさん:2006/03/24(金) 10:38:26
授業でしかプログラミングしたことのない>>82には
実務の世界はわからんよw

86 :82:2006/03/24(金) 10:45:41
釣れた釣れたw今日は大漁ww

87 :デフォルトの名無しさん:2006/03/24(金) 11:45:54
「釣れた釣れた」が「お前の母ちゃんデベソ〜」と言うガキの捨てぜりふに聞こえるw

88 :デフォルトの名無しさん:2006/03/24(金) 12:15:35
聞こえるし、実際その通り

89 :デフォルトの名無しさん:2006/03/24(金) 13:40:40
>>82
あまりお目にかかれないのは、case ラベル間に処理が入るパターン

  case A:
    func_A();
        // fall-through
  case B:
    func_A_or_B();

だろう。

>>79
つかそもそも「case 〜」って goto のラベルと同等だし、
{ } ブロック内に突入できるって時点で腐ってると思うんだが。
(そんなコード書く奴もアレだが、そう書ける必要なんてあるか?)

// 技巧に走って、オナニーに昇華した例
i = 6;
switch (asoko) {
  case A:
    for (i=0; i<8; i++) {
      func_A();
    case B:
      func_B();
    }
    func_A_and_B();
    break;
  default:
    func_C();
}

90 :デフォルトの名無しさん:2006/03/24(金) 13:44:11
>>82
ぱっと見て「ヘタだなぁ」と思う強がり

91 :デフォルトの名無しさん:2006/03/24(金) 14:38:31
>>89
>(そんなコード書く奴もアレだが、そう書ける必要なんてあるか?)
書ける必要はないが、書けなくする必要もない。
書きたきゃ書けばいい。

92 :デフォルトの名無しさん:2006/03/24(金) 15:16:03
>>33
a,bがそんなに大きくないなら

c = (b-a)>>31; // b<a なら-1
d = (a-b)>>31; // a<b なら-1
return c-d;


93 :デフォルトの名無しさん:2006/03/24(金) 15:20:10
a,bを全範囲でとなると 符号無ならCF  符号付なら OVF が必要でアセンブラで書く事になるな

94 :デフォルトの名無しさん:2006/03/24(金) 16:10:46
if(0 <= a && a <= 10)

  ↓

if( ((unsigned) a) <= 10 )


95 :デフォルトの名無しさん:2006/03/24(金) 16:21:29
解説しよう。

整数型は 1回の定数との比較では実は範囲の比較をしてる

たとえば 10<a という比較は、 11から aに入れられる最大値の範囲にあるかどうかの比較をしている
たとえば aが charであれば 11〜127であるかを比較しているのだ

したがって if(0 <= a && a <= 10)  は aがcharであれば


96 :デフォルトの名無しさん:2006/03/24(金) 16:24:07
−−−−−−−−−− キリトリ −−−−−−−−−−−

97 :デフォルトの名無しさん:2006/03/24(金) 16:38:41
俺は普段は>>33みたいな書き方をするが、

return (a < b ? -1 :
        a > b ?  1 :
        0);

みたいな書き方の方がいいんじゃないかと思うこともある。
やりたいことをより明確に表せているから。
だからって読みやすくはならないのが難点。

98 :デフォルトの名無しさん:2006/03/24(金) 16:51:03
>>78
Perl の .. は範囲演算子ではなくてリストを作成する演算子だ。
10..15 と書いた場合 (10, 11, 12, 13, 14, 15) というリストを
作る。それだけ。んで、 in のような演算子はない。なのでC言語
風に 10 <= $a && $a <= 15 のような書き方をする必要がある。


99 :デフォルトの名無しさん:2006/03/24(金) 16:58:18
>>92
それは言語がCかC++で型が32ビット符号付き整数の時しか使えないのでは?
あるいは Java の int か。


100 :デフォルトの名無しさん:2006/03/24(金) 16:59:51
>>82
あるよ。

====== 終わり ======


101 :デフォルトの名無しさん:2006/03/24(金) 17:27:32
>>33

int r;
(r= a-b) && (r=((a>b)*2-1)) ;
return r;


102 :デフォルトの名無しさん:2006/03/24(金) 17:33:39
>>101
a=b の時、-1が返りそうなんだけど…。気のせい?

103 :101:2006/03/24(金) 17:36:56
ああ、そうか。
&&の演算の時、falseが表われた時点で以降の式が評価されない事を期待してるのね。
失礼。

スレタイ通りのプログラムだw

104 :102:2006/03/24(金) 17:37:46
↑102でした。重ねて失礼。

105 :デフォルトの名無しさん:2006/03/24(金) 17:38:35
>>102
左から評価される環境なら大丈夫

106 :102:2006/03/24(金) 17:43:08
(a>b)って、真の時、-1にならない?
true...-1 false...0 が普通だと思ってたけど違うのかな?

107 :デフォルトの名無しさん:2006/03/24(金) 17:46:00
>>106
言語による。 Basicなんかはそうだね。

C言語系では 整数型へ暗黙の変換がされる時は 0か1

108 :デフォルトの名無しさん:2006/03/24(金) 17:59:46
皆がお互いに周りに合わせる事が大事
パズルじゃないんだから
見せびらかしちゃ駄目。

109 :102:2006/03/24(金) 18:01:20
>>107
そうなんだ。知らなかった。
trueを-1にしとけばnot演算がビット演算と同じになるから、
「なんて賢いんだ」と感動したんだけどな、昔。

trueを1にするのって何かメリットあるの?

110 :デフォルトの名無しさん:2006/03/24(金) 18:08:15
>>109
単なる設計ミスでしょ。
char や int をデフォルトで符号付にするなら
論理型を1bit値であるとみて符号拡張と考えたら -1 になるべきと思えるよね

といっても c には論理型は無くて、int で代用するのだと見れば、0,1でいいんじゃないの?

111 :デフォルトの名無しさん:2006/03/24(金) 18:13:54
>>94

if( ((unsigned) a) <= 10u )

112 :デフォルトの名無しさん:2006/03/24(金) 18:22:43
>>94
if( (unsigned) a <= 10u )

113 :デフォルトの名無しさん:2006/03/24(金) 18:49:22
>>33
true=1 , false = 0と仮定すると、

return (a>b) - (a<b) * (a!=b);

...可読性なさすぎ。。。

114 :デフォルトの名無しさん:2006/03/24(金) 18:51:25
>>81
そういうケースは、

case A, B:
// A 又は B の時

みたいにできなかったのかなぁ...。

>>105
短絡評価をサポートしてて左から評価されない環境なんてないでしょ。

>>109
> trueを-1にしとけばnot演算がビット演算と同じになるから、

C言語 (に限らないが) は、≠ 0 を真とみなさないといけないから
どっちにしろ論理否定とビット反転は一緒にはできないよ。

115 :デフォルトの名無しさん:2006/03/24(金) 19:06:11
>>94
時々、そういうコードを見るよね。 でもコメントでも書いてくれないと勘違いする

116 :デフォルトの名無しさん:2006/03/24(金) 19:11:21
どう勘違いするのかわからん

117 :デフォルトの名無しさん:2006/03/24(金) 19:15:10
>>101
俺はそういうコードを「ヘタ」と認識する。


118 :デフォルトの名無しさん:2006/03/24(金) 20:50:00
if(abs(a) <= 10) とでも思うんじゃね?

119 :デフォルトの名無しさん:2006/03/24(金) 21:06:10
>>114
case A or Bとか書ける言語があったような。
自分はそれよりも、caseに正規表現を使いたい。

120 :デフォルトの名無しさん:2006/03/24(金) 21:10:12
なんつーか…
ここ、すっかり頭の悪い発言スレになってるな。

121 :デフォルトの名無しさん:2006/03/24(金) 21:24:30
>>119
つRuby

122 :デフォルトの名無しさん:2006/03/24(金) 21:56:22
>>119
> case A or Bとか書ける言語があったような。

VBA なら、

Select Case N
Case 1, 3, 5 to 6, is > 100
 ' N = 1, 3, 5, 6, 100以上の時の処理

End Select

とか書ける。

> 自分はそれよりも、caseに正規表現を使いたい。

switch/select 等の多方向へ分岐する命令で文字列の
比較ができる言語なら大抵 Case の所に「式」が書ける
んじゃないか? (そうじゃない言語があったらすまん。)

だったら、

Select Case True
Case S Like "[0-9][0-9a-f]*"

End Select

みたいな感じでいいと思うが。

まあこのあたりになると、最適化が云々以前に、
if〜elseif〜else のシンタックスシュガーだな。

123 :デフォルトの名無しさん:2006/03/24(金) 23:39:39
>>99
お前バカすぎるな。

124 :デフォルトの名無しさん:2006/03/25(土) 01:50:17
>113
true=1/false=0 なら、最後の *(a!=b) は不要では。

return (a>b) - (a<b);

a>b の時 … 1 - 0 = 1
a<b の時 … 0 - 1 = -1
a=b の時 … 0 - 0 = 0

125 :デフォルトの名無しさん:2006/03/25(土) 02:44:37
>>124
おお! なんか対象性があってキレイ!

126 :デフォルトの名無しさん:2006/03/25(土) 03:23:26
>>62
うわっ!それ大昔のベーマガのOFに載ってたネタじゃんか!


127 :デフォルトの名無しさん:2006/03/25(土) 03:37:13
>>126を書いてから冷静になったが、コピペで出回ってるのかな・・・
昔ついでに、昔のBASICは真が-1なのを利用して
「2468で上下左右に移動、ただし画面からはみ出さない」を
I$=INKEY$
X=X-(I$="4")*(X>0)+(I$="6")*(X<39)
Y=Y-(I$="8")*(Y>0)+(I$="2")*(Y<24)
ってまとめて書いたっけ。機種によってIFより速かったり遅かったり。
今こんなの書いたら褒められるか殴られるかどっちだろう。


128 :デフォルトの名無しさん:2006/03/25(土) 03:42:27
むかし、実際に外注にVBで書かせて発見したコード。変数名も原文ママでどうぞ。

If A = "1" Or "2" Then

ツッコミどころはいろいろあると思うが、とりあえずバグってると思った。


129 :デフォルトの名無しさん:2006/03/25(土) 21:43:50
邪悪なVBコードコンテストでつかwww

130 :デフォルトの名無しさん:2006/03/25(土) 22:16:26
バグならヘタ以前だが、Aがフラグ変数で動き自体は意図どおりだったらヘタだな。

131 :デフォルトの名無しさん:2006/03/26(日) 06:28:44
N88からのBASIC使いかもしれんw

132 :デフォルトの名無しさん:2006/03/26(日) 11:40:52
趣味プログラマでつが自分で書いててふと不安になった
鑑定を依頼してみる

用件:変数dwWidthより大きい2の累乗の最小値を求めてdwPwXに。
for(DWORD dwPwX = 1;dwPwX < dwWidth;dwPwX *= 2);



133 :デフォルトの名無しさん:2006/03/26(日) 12:52:42
>>132
×用件 ○要件
その dwPwX は for が終わるとスコープアウトするわけだが。
VC だとしても dwWidth が 1 だと dwPwX が 1 になって要件を満たさない。
ハンガ(以下略

134 :デフォルトの名無しさん:2006/03/26(日) 12:59:16
dwWidthが2の累乗なら より大きい にはならんな

135 :デフォルトの名無しさん:2006/03/26(日) 16:37:57
>>132
それだとループの回数がlog(N)に比例するから大きい数のときに遅いのが少し気になる。
自分なら関数化してこう書くかな。

//n より大きい最小の 2の累乗-1 を求める
DWORD ceil2pm1(DWORD n){
    for(int i=1;i != sizeof(n)*8;i+=i)n |= n >> i;
    return n;
}
//n 以上の最小の 2の累乗 を求める
DWORD ceil2p(DWORD n){
    return ceil2pm1(n-1) + 1;
}
ついでに関係ないけど。
//n 以下の最大の 2の累乗 を求める
DWORD floor2p(DWORD n){
    n = ceil2pm1(n);
    return n - (n>>1);
}

136 :デフォルトの名無しさん:2006/03/26(日) 18:47:15
>>135
> i+=i

おいおい、頭大丈夫か?

137 :デフォルトの名無しさん:2006/03/26(日) 19:46:53
i*=2でもi+=iでもどっちゃでもええんとちゃう?

138 :デフォルトの名無しさん:2006/03/26(日) 22:35:39
>>135
i != sizeof(n)*8 は != より < の方がよくない?
sizeof(DWORD)は4だからいいといえばいいんだろうけど。

それから、そこを直接数値で書くんでなくsizeof(n)とするなら、
もう一歩踏み込んで、8でなく1バイトのビット長の定数を定義した方が
可搬性がさらに高まるのでは。

139 :デフォルトの名無しさん:2006/03/26(日) 22:46:58
>>138 標準に CHAR_BIT がある。

140 :デフォルトの名無しさん:2006/03/26(日) 23:19:55
DWORDって時点で可搬性とかどうでもいいと思うが。そもそもsizeof(n)とかせんと素直に32にしとけ。

>>139
C#っつー可能性もあるんとちゃうかなぁ。

141 :132:2006/03/26(日) 23:22:01
結構反響があってビクーリだ

>133
ちょっと嘘書きました。
ああ書いたけど本当は定義はforの外です…

あと説明が悪かったのですが、このコードD3Dのテクスチャロードに使う部分で、
>dwWidth が 1 だと dwPwX が 1 になって要件を満たさない。
>dwWidthが2の累乗なら より大きい にはならんな
↑これは実用途としては要件を満たしてたりします。スンマソン(dwWidthが1なら1、2の累乗ならその値を使う)

>135
成程と理屈は判るんですが、何となく邪悪さを感じる…

142 :デフォルトの名無しさん:2006/03/26(日) 23:29:08
>>135
スピードが気になるなら二分検索にすればいいんじゃないの?
32ビットなら最悪5回のループで済む。

143 :135:2006/03/27(月) 00:13:28
>>138
あー、確かに < のほうが良いですね。
それに >>139 のCHAR_BITも組み合わせると無駄に可搬性が高いコードになりそうw

144 :デフォルトの名無しさん:2006/03/27(月) 00:20:33
Java の案件なのに nTotal とか strName とかって変数が出てくると
「こいつのソース、もう読みたくねえなあ。。。」と思ってしまう。
Writing Solid Code で思いっきりハンガリアンマンセーされてて萎えた。
買う前にもう少し確認してからにすべきだった。

Code Complete は面白かったから、こっちもガチだと思ったのに。

145 :デフォルトの名無しさん:2006/03/27(月) 00:37:10
ここは逆ハンガリアンで対抗だ。
ttlIntegerとかnmStringとか。


146 :デフォルトの名無しさん:2006/03/27(月) 00:45:59
別にハンガリアンでもいいんだけどさぁ
ローカル変数をmintCountとかするのは止めて欲しいな
もちろんインスタンス変数にもmがついてる

147 :デフォルトの名無しさん:2006/03/27(月) 00:51:25
その m は何の m だろうなあ。。

大文字の変数(HOGE_MAXとか)なのに
const じゃなかった時にはかなり脱力したなあ。
理由尋ねたら「最初は定数で良いと思ったんだけど、
後から変更が必要になっちゃったから。」だとさ。
だったら camel に書き換えてくれよ。

148 :デフォルトの名無しさん:2006/03/27(月) 00:52:24
>>135>>137 は、C言語でのプログラム作業禁止な。

「ヘタだなぁ」以前の問題だ。

149 :デフォルトの名無しさん:2006/03/27(月) 00:53:39
>>141
0乗は累乗に含んじゃいけませんか

150 :138:2006/03/27(月) 01:07:02
>>140
用途があるかどうか分からんけど、DWORD以外への使い回しを考えたから。
使いまわすならテンプレートで書くが。

151 :デフォルトの名無しさん:2006/03/27(月) 01:18:07
なんか>>148は勘違いしとる気がするなぁ。
多分コイツにはi=i+1もヘタ以前なんだろうな。

152 :デフォルトの名無しさん:2006/03/27(月) 01:32:39
キチガイは相手すんな

153 :デフォルトの名無しさん:2006/03/27(月) 07:03:48
>>132

dwPwX = dwWidth-1; //1小さい値を代入して
dwPwX |= (dwPw >>1) ; // 1/2したものと or
dwPwX |= (dwPw >>2);
dwPwX |= (dwPw >>4);
dwPwX |= (dwPw >>8);
dwPwX |= (dwPw >>16);    //これで dwPwX に必ず全てが1の値が作れる
dwPwX ++;

154 :デフォルトの名無しさん:2006/03/27(月) 08:09:39
最近switch文やめてif { ...} else if {...}...にしてる。
switchはIDの羅列のみに限定中

155 :デフォルトの名無しさん:2006/03/27(月) 08:23:47
>>154
なぜわざわざ遅くなるようなプログラムにすんのか理解できね

156 :デフォルトの名無しさん:2006/03/27(月) 08:44:04
>>155
switchって時代遅れな感じするし、インテル臭がぷんぷんするから

157 :デフォルトの名無しさん:2006/03/27(月) 08:51:16
Java だと条件によっては if-else-if より switch の方が遅くなる。
パフォーマンスを語るなら神話や経験に基づいた憶測は止めて
実測値で語れとえらい人が言ってた。

列挙が絡む場合は switch 使った方が分かりやすいと思うので俺は使う。

158 :デフォルトの名無しさん:2006/03/27(月) 08:58:35
>>155
遅くなるかどうかは別の問題。

159 :デフォルトの名無しさん:2006/03/27(月) 08:59:29
switchってたぶん昔のCPUのインデックステーブルの高速処理を利用するための名残だと思う。
速かったけどね。
DECか何かのアセンブラ命令を置き換えたやつ。
ペンティアムやアスロンは高速化の次元が違うから、単純な比較は難しいね

160 :デフォルトの名無しさん:2006/03/27(月) 09:08:18
>if と switch
俺は、取り敢えず書いてみて、読みやすい方を使う。

161 :デフォルトの名無しさん:2006/03/27(月) 09:18:01
とりあえずswitchにしといてコンパイラの最適化にまかせればいいと思うお。

162 :デフォルトの名無しさん:2006/03/27(月) 10:47:04
>switchって時代遅れな感じするし、インテル臭がぷんぷんするから

読んでる方が情けなくなってきた

163 :デフォルトの名無しさん:2006/03/28(火) 08:53:00
switchちゅうなら、中こんなじゃあるまいか。
アセンブラでゴリゴリする時は、まだまだ良く使うよ

switch( hoge )
   ↓

mov er hoge
add pcl hoge
jsr@ subHoge1
jsr@ subHoge2

jsr@ subHogeN

164 :デフォルトの名無しさん:2006/03/28(火) 22:10:43
オレはdo〜whileが嫌い。
↓このdoが寂しそうだから。
do
{
 :
}
while(...);

中括弧は次行派なんで、「do{」と詰めて書くとそこだけ雰囲気変わるし。

165 :デフォルトの名無しさん:2006/03/28(火) 22:26:09
>>164
お前はやさしい奴だ

166 :デフォルトの名無しさん:2006/03/28(火) 23:55:06
doにとっては一人で居るのが最高にいいんだよ。


167 :デフォルトの名無しさん:2006/03/29(水) 00:46:38
鬱なのかな。がんばって欲しいもんだ。

168 :デフォルトの名無しさん:2006/03/29(水) 00:50:24
>164
doにとって唯一活躍できる場なのに…

169 :デフォルトの名無しさん:2006/03/29(水) 01:13:34
dodemoii

170 :デフォルトの名無しさん:2006/03/29(水) 01:24:01
>>164の酔うな書き方はまずいんじゃねーの?
やっぱり
do {
} while (...);

とかいたほうがiizo


171 :デフォルトの名無しさん:2006/03/29(水) 01:36:49
ちと不安になったのでレス。

すべて大文字⇒定数
∴定数⇒すべて大文字?

定数でもすべて大文字にしていないのだけど、
みんなはどう?

172 :デフォルトの名無しさん:2006/03/29(水) 01:42:05
定数=大文字にしてる。
PRINT_LINE_MAX

変数は
nPrintLineMax

微妙にハンガリアンでごめんね・・(´・ω・`)

173 :デフォルトの名無しさん:2006/03/29(水) 02:44:20
定数は全く同じ
PRINT_LINE_MAX

変数(ローカル/パラメータ)は
printLineMax

オブジェクト指向限定になっちゃうけど,フィールド変数ってどうしてる?
_printLineMax
printLineMax_

前後どっちにつけるか,いつも悩んでる

value objectなときはつけなかったり一貫性なくてごめんね..(´・ω・`)

174 :デフォルトの名無しさん:2006/03/29(水) 03:15:01
>>173
フィールド変数って言われるとJavaの話のように思ってしまう。
ので、自分は“_”はつけません。getter/setterの名前と合わないと気持ち悪いから。

175 :デフォルトの名無しさん:2006/03/29(水) 03:18:53
_なんかに頼らず常にthisをつける。これ最強

176 :173:2006/03/29(水) 06:25:14
>>175
そこまで強く言ってくれたので,統一するってことで今日からthisにします.

とんくす.

177 :デフォルトの名無しさん:2006/03/29(水) 06:40:35
基底クラスにあるメソッドなりフィールドなりを「基底クラスにあるから」という理由だけで
superなりMyBaseなりつけて参照しているのを見ると「ヘタだなぁ」と思う。

178 :デフォルトの名無しさん:2006/03/29(水) 08:51:26
>>173
フィールド変数って呼び方が新鮮だった。
なるべく別の名前を考えてふってる。どうしても思いつかないときだけ _ を付ける感じ。

最近、クラス継承を禁じ手にしてる。古いソースを使うときのみ、そういうものが残ってる感じ。

179 :デフォルトの名無しさん:2006/03/29(水) 11:38:24
>>177
 super はともかく、適切に typedef された "MyBase" 風のものは
後で基底クラスを変えられるような template クラス化する際に役に
立つことがあるよ。

180 :デフォルトの名無しさん:2006/03/30(木) 19:09:54
ヘタだなぁという言語仕様

setNumber(getNumber()+1)


getter/setterなんて糞
プロパティがいい!

181 :デフォルトの名無しさん:2006/03/30(木) 19:12:30
プロパティの実体のフィールド変数ってどうしてる?

たとえば、
obj.value (valueはプロパティ) の値をそのまま保持している変数。

value_
_value
m_value

どうするかいつも悩んでる。


182 :デフォルトの名無しさん:2006/03/30(木) 19:17:56
>>175
内部クラスから呼び出すときはどうすんの?

183 :デフォルトの名無しさん:2006/03/30(木) 19:25:10
ヘタだなぁと思うコード

obj.Number = obj.Number + 1

直接プロパティをいじらせるのではなく
論理的意味のある名称のメソッドを定義しろよ

184 :デフォルトの名無しさん:2006/03/30(木) 20:12:22
直接いじるからプロパティなんだろう。

185 :デフォルトの名無しさん:2006/03/30(木) 21:15:38
コードの中身を読まなくてもわかるヘタポイント
・識別子名がローマ字
・識別子名の(英)単語のスペルが間違っている
・識別子名に使っている(英)単語の意味をおそらく誤解している

プログラミング能力以前の、「テキストファイルにアルファベットを打ち込む」
能力が欠如している可能性大。

186 :デフォルトの名無しさん:2006/03/30(木) 21:43:48
ローマ字は別にいいと思うよ。無理に英語にしなくても。

メソッド等で一番よくみるヘタな英単語は「regist」。
そんな単語ねぇよ。

187 :デフォルトの名無しさん:2006/03/30(木) 21:54:35
クラス名とソールのファイル名がバラバラだと、センス悪いなと思う。

class MyClass なら"MuClass.h","MuClass.cpp"ってしていると好感もてる。
飲みに行きたいくらいに。

188 :デフォルトの名無しさん:2006/03/30(木) 21:55:39
>>187
スペルみすった。俺にセンスがない・・・・・・・・・・・・・・・ モウダメポ・・○| ̄|_

189 :デフォルトの名無しさん:2006/03/30(木) 22:17:52
>>187-188
class stdio
{
public:
  static int printf(const char *, ...);
  static int sprintf(char*, const char *, ...);
  // 以下略
};

190 :デフォルトの名無しさん:2006/03/30(木) 22:32:16
>>186
それどっかのブログでみた

本人

191 :デフォルトの名無しさん:2006/03/30(木) 22:35:26
?が抜けちゃった

本人?


192 :デフォルトの名無しさん:2006/03/31(金) 00:02:44
晒せ

193 :デフォルトの名無しさん:2006/03/31(金) 07:55:15
>>189
萌え

194 :デフォルトの名無しさん:2006/03/31(金) 12:14:18
>>186
ローマ字で統一されているならまだポリシーとして認められるが、
それと同じ意味で使っていると思われる英単語の識別子が別にあって、
しかもそのスペルが間違ってたらどう思う?

ex.
ゲームのコードで、敗北に関わる何らかの処理をするらしい関数hogehogeMake()
(もうこの時点で"make(マケ)"と"make(メイク)"が混乱する)。
そして別の箇所に、敗北の状態を意味するらしいHOGEHOGE_LUSEなる定数。

195 :デフォルトの名無しさん:2006/03/31(金) 12:38:23
>>194
>・識別子名がローマ字
これ単体で問題ないなら、組み合わせてるほかのことに問題がある。

同じ意味なのに複数の用語を用いるとか、スペルミスとか、意味の誤解とか、
そういうのはローマ字でも英語でもイタリア語でも同じように問題。

196 :デフォルトの名無しさん:2006/03/31(金) 13:22:44
日本語の場合は音が同じでも意味が違う単語は多いぶん
他の言語と同じよような問題だとは言いがたい。

197 :デフォルトの名無しさん:2006/03/31(金) 13:48:26
某官系の仕事の場合CYUKEIとCHUUKEIの両方の用語が定義されているので、
勢いプログラムの方もCyukeiSakuseiとかBuildChuukeiとかMakeRelayとかが入り混じる。

198 :デフォルトの名無しさん:2006/03/31(金) 19:30:19
>>194
そんなLUUSEなソースは見たことないなぁ、さすがに。

199 :デフォルトの名無しさん:2006/03/32(土) 11:53:31
識別子に漢字を使える言語って結構あるよな。ローマ字にこだわらんでもよかろうもん。

200 :デフォルトの名無しさん:2006/03/32(土) 15:01:09
>>194ワロス

201 :デフォルトの名無しさん:2006/03/32(土) 21:29:49
コメント以外に2バイト文字が散見されるコード

202 :デフォルトの名無しさん:2006/04/02(日) 10:18:29
UTF-16に変換したらヘタになるわけだな

203 :デフォルトの名無しさん:2006/04/02(日) 11:34:20
UTF-16にしなきゃならないようなソースならヘタと言えるかもな

204 :デフォルトの名無しさん:2006/04/02(日) 11:38:18
Javaは常にヘタとなるな。

205 :デフォルトの名無しさん:2006/04/02(日) 12:58:00
昔のJavaはASCIIでも問題なかったが、
いつから常にUTF-16にしなきゃならなくなったんだ?

206 :デフォルトの名無しさん:2006/04/02(日) 13:04:05
2年くらい前から

207 :デフォルトの名無しさん:2006/04/02(日) 14:23:09
for( int i=0; i < 10 ; i++ )
{
...
}

こんなソース見ると、とてもなごむ。 (;´Д`)ハァハァ

208 :デフォルトの名無しさん:2006/04/03(月) 13:24:49
>>207
俺それかも。どう和むのか教えてくれ…

209 :デフォルトの名無しさん:2006/04/03(月) 14:29:37
>>208
俺もわからん。10の前後にスペース入ってることくらい?

ところで最近見たヘタな名前。POST_NOという名の郵便番号。
気づいた頃にはPostNoとかが散乱してて手に負えず(´・ω・`)

210 :デフォルトの名無しさん:2006/04/03(月) 14:36:08
漏れも >>207 はナゴム。
教科書とか入門書とか読んでるみたいで。
実戦だとこうならない?

for (int i = 0; i < BLOCK_SIZE; i++) ... とか、
for (T:iterator it = v.begin(); it != v.end(); ++it) ... とか。

211 :デフォルトの名無しさん:2006/04/03(月) 19:29:56
C++erなオレは>>207のi++を見ると++iに直したくなるんでちょっとストレス

212 :デフォルトの名無しさん:2006/04/03(月) 20:48:35
>>211
intでソレをしたくなるのは、単なる低脳

213 :デフォルトの名無しさん:2006/04/03(月) 21:21:55
>>211
その気持ちわかる

214 :デフォルトの名無しさん:2006/04/03(月) 21:33:30
でも i には i++ が似合うかも

215 :デフォルトの名無しさん:2006/04/04(火) 00:15:03
>>212
せっかくイテレーターで一般化されてるのに区別するほうがおかしい。

216 :デフォルトの名無しさん:2006/04/04(火) 07:05:18
昔のコンパイラは、i++より++iの方が速かったからな…

217 :デフォルトの名無しさん:2006/04/04(火) 13:46:56
昔話や「最近の○○は…」とか口に出たら老けかなと思ってる。

218 :デフォルトの名無しさん:2006/04/05(水) 22:49:25
いや〜1年追いかけなかっただけでも「最近のHDは…」って思うなぁ。
その前は「最近のメモリーは…」だったし。
1年のブランクを短いものと感じる辺り、やっぱ老けてんのか。

219 :デフォルトの名無しさん:2006/04/05(水) 23:26:01
最近そんなハードウェア進化してねーだろ。
ここ数年、それまでと比べ、ハードウェアは明らかに進化曲線ががた落ちしてる。

220 :デフォルトの名無しさん:2006/04/06(木) 01:30:33
218の内容自体が昔話なわけか……
老けっつーより、老化してんな……

221 :デフォルトの名無しさん:2006/04/06(木) 03:14:29
ヘタだなぁと思うレベルと
やってはいけないレベルって
それなりに差があるんだろうか、このスレとしては。

222 :デフォルトの名無しさん:2006/04/06(木) 03:23:13
やってはならないレベルのコードは「ヘタだなぁ」と思う前に
目が読むことを拒否し、脳は理解することから回避しようとするが、
そういうコードは大抵仕事絡みでやってくるので逃避することができない。

223 :デフォルトの名無しさん:2006/04/06(木) 04:54:43
やってはならないレベルの話はマ板でやってるっしょ。ネタスレだけど。
ここはあくまでも動くけどなんだかなーと思っちゃうコードでいいんじゃね?

224 :デフォルトの名無しさん:2006/04/06(木) 14:58:14
>>219
劇的な進化はないけども、例えば
去年の今頃には 2.5 インチ 120GB なんて
売ってなかったわけで。

225 :デフォルトの名無しさん:2006/04/06(木) 16:37:30
だから?

226 :デフォルトの名無しさん:2006/04/06(木) 16:40:20
何がだから?

227 :デフォルトの名無しさん:2006/04/07(金) 00:45:07
>動くけどなんだかなーと思っちゃうコード
やってはいけない領域に片足突っ込んでる場面しか思い出せない。

なんだかなーと思うテストデータは結構あるんだけど。

228 :デフォルトの名無しさん:2006/04/07(金) 01:29:24
やってはいけないコードは直さないといけないが、
ヘタなコードは直さなくてもいい。場所によっちゃあ直すと怒られる。


229 :デフォルトの名無しさん:2006/04/11(火) 15:19:57
そこの君。これを見ても修正の誘惑に勝てるのか?

char buf[10];

sprintf(buf, "0");


230 :デフォルトの名無しさん:2006/04/11(火) 16:08:49
別にいいんじゃないの? strncpy とか無理に使う事もないだろ

231 :デフォルトの名無しさん:2006/04/11(火) 17:24:46
変更連絡票書いて、影響範囲書いて(ってこれは「無し」で良いか)、
修正理由書いて、修正理由の分類書いて、テストの必要無しの理由書いて、
バージョン管理システムに上げて、ビルド担当者に連絡して、
とか考えたらそんなバグってもいないし効率もさほど悪くないもの
ほうっておくよ。

ナガーイ文字列をstrcatでゴリゴリ連結してるのとかだと迷うけど・・・

232 :デフォルトの名無しさん:2006/04/11(火) 19:46:53
if(A){
 if(B){
  if(C){
  }else{


}else{
}
}else{
}

if文がネストするとスパゲティな感じがするんだけど、


233 :デフォルトの名無しさん:2006/04/12(水) 10:05:48
>>232
そうだなあ。深いネストでしかもブロックの中が長いと読み辛いな。
更にインデントがガタガタになっているとぱっと見て分からない。

C言語の場合はものによっては goto 使うべきだよね。複数のファイルを
オープンしたりメモリ確保したりして、途中でエラーが出た時の処理とか、
ifをネストさせてないと復帰処理が下に行くほど大きくなるが、しかし
ifをネストさせると読み辛くなる、という場合。(C は try catch が
ないからその代わりに、ということでもある)。


234 :デフォルトの名無しさん:2006/04/12(水) 13:00:53
いやだから、そういう目的で例外を使うコード自体がこのスレの対象なわけだが。

235 :デフォルトの名無しさん:2006/04/12(水) 13:22:18
>>233
エラー処理に例外を使うのは普通じゃないの?

236 :デフォルトの名無しさん:2006/04/12(水) 13:23:24
I/O処理なんかでtry〜finallyするのは常套句だと思うけど。
この場合は例外はそこで捕捉して閉じてるし。

237 :デフォルトの名無しさん:2006/04/12(水) 14:29:01
「変更連絡票」だの「ビルド担当者」だの、ってのは
「ぱっと見て『ヘタだなぁ』と思うシステム開発手法」だな。

238 :デフォルトの名無しさん:2006/04/12(水) 14:59:22
>>235-236
普通のコードはこのスレの対象外。

>>237
でもそれを変えるのは結構大変。
大規模開発案件だとか、小規模開発なのに
クライアントが大手電器企業だと特に。

239 :デフォルトの名無しさん:2006/04/12(水) 15:13:20
>>238
漏れ、某芝相手でそんなもん見たことも聞いたこともましては食ったこともないよ。

「ちょっと手直しして欲しいんだけど。概略コード送るからよろしく」
「判りました、やっときます」

「できました。差分送るからパッチ当ててください」
「ありがと、普通にビルドしていいの?」
「あー、一応make cleanしてからmakeしてください」
「了解、今度来るときにリポジトリ持ってきてね」

240 :デフォルトの名無しさん:2006/04/12(水) 15:21:27
>>239
ウラヤマシス

241 :デフォルトの名無しさん:2006/04/12(水) 15:46:23
>>239
いい環境だな

242 :デフォルトの名無しさん:2006/04/12(水) 20:40:28
>>235
まあ、そういうふつーの言語をいつも使える人は幸せですね、というお話。

243 :デフォルトの名無しさん:2006/04/19(水) 22:14:01
今日初めてJavaのプロジェクトに入ったんだけど
クラス名がみんなID(XXXXX_9999)だった。。。

うーん
規模がデカいと結構こんなもんなんですかね
(名前考えるのは確かに大変そうだけど)

244 :デフォルトの名無しさん:2006/04/19(水) 22:36:34
>>243
パッケージというものがわかってないアホが
リーダーだと苦労しますな。

245 :デフォルトの名無しさん:2006/04/19(水) 22:36:55
>>243
コーディング規約 第2条
http://pc8.2ch.net/test/read.cgi/tech/1068752664/
へどぞー

246 :デフォルトの名無しさん:2006/04/19(水) 23:08:05
>>243
そういうの、Cのプロジェクトでも書かされたことがある。
とりあえず、フツーに書いて、あとからエディタで、関数名をIDに置換した。

COBOLあたりの文化なのかねー?

247 :デフォルトの名無しさん:2006/04/19(水) 23:24:16
ケースツールから自動生成したとか。

248 :デフォルトの名無しさん:2006/04/20(木) 00:18:05
だとしても、それをそのまま使うってのは最低だと思われ。
そもそもFQCNで全てユニークに判別可能なのに、なんでIDなんざ振る必要があんのかね?
余計面倒を増やすだけで、何のメリットも無いのに。

249 :デフォルトの名無しさん:2006/04/20(木) 02:07:21
>>248
業務系だとしばしばそういう目に遭う。
画面の設計書と同じ番号で関数書く規約なんて邪魔でしかないんだけどねぇ。
#しかもabc1234_init()とかabc1234_stop()とかって、クラスってなんですか? な規約だったり。

250 :デフォルトの名無しさん:2006/04/20(木) 06:25:44
そういう規約は中途半端なローマ字とかの名前を使う馬鹿がいるせいでは。
その馬鹿のために別の馬鹿が規則を作っちゃったとか。

251 :デフォルトの名無しさん:2006/04/20(木) 07:20:07
業務プログラマってのは奴隷でしかないんだから
ゴチャゴチャ言わず、手足となってコーデングしろってことさ

252 :デフォルトの名無しさん:2006/04/20(木) 07:35:35
番号に比べたら、ローマ字綴りのほうがマシなんじゃない?

253 :デフォルトの名無しさん:2006/04/20(木) 07:40:47
>>251
「脳」がまともに考えて設計してくれりゃそれでもいいんだけどね。
なんで手足が悩まにゃならんのだ。

254 :デフォルトの名無しさん:2006/04/20(木) 07:45:27
>>253
だから、成果にお金を払ってるんじゃない。人月に金を払ってるんだから、
作業性が悪いのは有難い事と受け止めろ。

255 :デフォルトの名無しさん:2006/04/20(木) 09:09:35
>>254
そうそう、何で残業時間が長いだけの業務系コーダーが
客先信用度No.1の制御系SEより年間売上高くなるか考えれば自明だよな。

256 :デフォルトの名無しさん:2006/04/20(木) 14:33:27
前提が間違っているとあらゆるものが飛び出てくる
これが論理学というか宇宙の真理というものだ
番号関数はその規約を作成する過程でバグがある

257 :デフォルトの名無しさん:2006/04/20(木) 19:08:21
>>254
値段は見積もりでついてるから、作業性が悪くても収入は増えんなぁ。

258 :デフォルトの名無しさん:2006/04/20(木) 19:26:36
>>232
if文のネスト自体はせざるを得ない状況もあるが、
その中にそれぞれの場合のロジックが埋め込まれているとヘタと感じるね。

259 :デフォルトの名無しさん:2006/04/20(木) 21:23:51
80桁に収まってない行が大量にあるコードは、ぱっとみてヘタそうに見えるね。


260 :デフォルトの名無しさん:2006/04/20(木) 22:10:26
ムリヤリ80桁にするのは?

261 :デフォルトの名無しさん:2006/04/20(木) 22:25:43
もっとヘタに見える。

262 :デフォルトの名無しさん:2006/04/20(木) 23:09:36
>>259
>80桁に収まってない行が大量にあるコードは、ぱっとみてヘタそうに見えるね。 

一般に >>243 みたいなところは、やたらと80桁に拘る傾向にある。


263 :デフォルトの名無しさん:2006/04/20(木) 23:10:23
こだわるなら132桁だろ、とか思う。

264 :デフォルトの名無しさん:2006/04/20(木) 23:15:31
三画面スクロールしてもブロックが着陸しないコードは、思わず寒気がする。

265 :デフォルトの名無しさん:2006/04/20(木) 23:21:51
>>262
linuxのカーネルとか、だいたい80桁に収まるように書かれてるようだよ。

266 :デフォルトの名無しさん:2006/04/21(金) 01:20:14
だいたいおさまってるのと
無理やりおさめようとしてるのには
雲泥の差がある

267 :デフォルトの名無しさん:2006/04/21(金) 07:41:45
だから>>259で「収まってない行が大量にある」と書いた。

268 :デフォルトの名無しさん:2006/04/21(金) 08:21:41
80桁ってのはCOBOLか。

うちの規約じゃ115桁でコードウィザードが設定されている。

269 :デフォルトの名無しさん:2006/04/21(金) 08:27:03
115桁は長いな。
行末にいっぱいコメントつけるスタイルなのかね?

270 :デフォルトの名無しさん:2006/04/21(金) 10:28:12
80桁とかそういう問題ではなくて、最初から8タブのことしか
考えずにスペース混ざりで書かれて4タブで表示したらガタガタ
というのは嫌だなあ。

まあ、C言語ならindentで変えられるからいいが。


271 :デフォルトの名無しさん:2006/04/21(金) 11:11:47
インデントは2や4。
タブは8桁。
インデントが8を超えたらタブを使用。
それ以外はスペース。

って流儀は、Unix系ではよくあるね。



272 :デフォルトの名無しさん:2006/04/21(金) 11:53:08
>>271
vi で shiftwidth (インデント) ≠ tabstop (タブ幅) にしてると
自然とそうなるしな。

273 :デフォルトの名無しさん:2006/04/21(金) 12:43:06
emacsでもそうだね。


274 :デフォルトの名無しさん:2006/04/21(金) 19:24:16
75 :GiantLeaves ◆6fN.Sojv5w :2006/04/20(木) 18:05:30
#include<stdio.h>
int myadd(int i,int j);
/* Calculating 16+16 */
int main(){
printf("%d\n",myadd(16,16));return 0;
}
int myadd(int i,int j){
int k;
if(i==0){
if(j==0){k=0;}
else{k=myadd(0,k-1);}
}
else{k=myadd(i-1,k);}
return k;
}
/* 大して遅くない。 */

275 :デフォルトの名無しさん:2006/04/21(金) 21:13:31
>>269
GUIを扱うと、80行は辛いと思うけど。


276 :デフォルトの名無しさん:2006/04/21(金) 21:21:30
>>275


277 :デフォルトの名無しさん:2006/04/21(金) 21:27:26
>>276
80行じゃなくて、桁だった。

278 :デフォルトの名無しさん:2006/04/21(金) 21:38:01
再帰使わずにわざわざループ処理させている

279 :デフォルトの名無しさん:2006/04/21(金) 21:39:30
こんど勇気をもって再帰をつかってみよう。

280 :デフォルトの名無しさん:2006/04/21(金) 22:35:00
>>278
そのほうが早くてメモリも食わないからそうしてるなんて多々あること。
再帰除去って知らんのか?

281 :デフォルトの名無しさん:2006/04/21(金) 22:50:13
コンパイラが出来る最適化を手動でやってる人を見てると悲しくなってくる。

282 :デフォルトの名無しさん:2006/04/21(金) 22:56:50
簡単な最適化なら手動でするなぁ。
実測せんと実際に最適化してるかどうか分からんし、ちょっとした変更で最適化されなくなることもあるしな。

283 :デフォルトの名無しさん:2006/04/21(金) 23:00:01
実測しなくても見ればわかるよ。
再帰の場合はどういうときに最適化されるかも、はっきりしてるし。

284 :デフォルトの名無しさん:2006/04/22(土) 00:12:42
>>283
「最適化されるはずですが」とか言ってるクチだね。
使えねぇ。

285 :デフォルトの名無しさん:2006/04/22(土) 00:27:00
末尾再帰の最適化が処理系に義務付けられてる言語もあるんだが。
そういう言語ではループのほうがへたなコードだなあ。

286 :デフォルトの名無しさん:2006/04/22(土) 00:32:34
ループを使う奴は低学歴。これは間違いない。

287 :デフォルトの名無しさん:2006/04/22(土) 00:48:48
>>286
ループが最適な処理なんていくらでもあるでしょうが。

288 :デフォルトの名無しさん:2006/04/22(土) 02:56:31
話題がループしていますね。

289 :デフォルトの名無しさん:2006/04/22(土) 10:38:41
>>284
コンパイラの挙動くらい把握しましょうよ。
再帰関連の最適化は、わかりやすい部類だからさ。

290 :デフォルトの名無しさん:2006/04/22(土) 11:16:18
「規格が保証してくれている」と
「(俺の使っている)コンパイラならやってくれる」の
違いを明確に意識しない人って、結構多いよね。


291 :デフォルトの名無しさん:2006/04/22(土) 11:36:21
いまどきのコンパイラなら、たいていやってくれる最適化だよね。

292 :デフォルトの名無しさん:2006/04/22(土) 11:39:20
再帰の深さが数十程度で、コードが分かりやすくなるなら、最適化の有無も考えないで再帰。

293 :デフォルトの名無しさん:2006/04/22(土) 11:42:34
掲示板とかで初心者に、いまだに、rand()の返す値は、上位ビットを使えとか
言ってるやつと、同じかおりがするな。 > 再帰絶対反対派


294 :デフォルトの名無しさん:2006/04/22(土) 11:48:26
>>293
何処にも「再帰絶対反対」などというレスは
見当たらないのだが・・・


295 :デフォルトの名無しさん:2006/04/22(土) 12:02:19
規格が保証してないと使わないって人は、一部の言語以外は、絶対反対なのでは?

296 :デフォルトの名無しさん:2006/04/22(土) 12:09:48
>>295
何処にも「規格が保証してないと使わない」などというレスは
見当たらないのだが・・・


297 :デフォルトの名無しさん:2006/04/22(土) 12:15:37
じゃあ、適切なときには使う。
使ってないやつはヘタクソってことで、意見は一致か。

298 :デフォルトの名無しさん:2006/04/22(土) 19:39:56
http://d.hatena.ne.jp/yaneurao/20060423#p1

>いま他人のプログラムをデバッグしている。時間がもったいないので目視のみだ。
>私の場合、小さなクラスならば、目視のみでほぼ100%デバッグできる。

「100%バグが取れた」と無邪気に確信でき、平気で吹聴できる辺りが痛杉。


299 :デフォルトの名無しさん:2006/04/22(土) 19:51:08
トラックバック:http://d.hatena.ne.jp/yaneurao/20060423

300 :デフォルトの名無しさん:2006/04/22(土) 20:10:45
>>298
「ほぼ」って書いてあるのが読めないお前痛杉。

301 :デフォルトの名無しさん:2006/04/22(土) 20:15:10
やねうらお召喚成功


やねが痛いのは常識

302 :デフォルトの名無しさん:2006/04/22(土) 20:15:51
「あからさまなバグがないか調べる」ことをデバッグと呼んでいいなら、
漏れもデバッグは目視でできるよ。
まさか如何に某氏が痛くても、「目視だけでバグがないことを100%保証できる」とは思っちゃいないだろ。

303 :デフォルトの名無しさん:2006/04/22(土) 20:18:33
>>298-301
よそでやってくれ。

304 :デフォルトの名無しさん:2006/04/22(土) 20:39:39
「ほぼ100%」と書いた以上、
「完璧に100%」と受け取られても仕方ないと思うが、どうよ?

だって、「ほぼ100%」と「完璧に100%」の違いが
それほどまでに大きいのならば、
そんなの「ほぼ100%」とは言わねーんじゃねーの?


305 :デフォルトの名無しさん:2006/04/22(土) 20:44:46
>>304
ここでやるな。気になるんなら本人に聞け。

306 :デフォルトの名無しさん:2006/04/22(土) 20:52:14
往々にして「ほぼ100%」とか書くときは逆に「100%ではない」ということを暗に
言い訳したいときだから、話半分に聞くようにしているのであまり気にならんかった。
大体、まず「小さなクラスならば」という前提があり、「(そのクラスのなかから変な……」
なる予防線まで張ってるし。
世の中にあるバグ臭いコードは「無駄に長く」「変なAPIや外部関数を使っていて」
「難しいアルゴリズムをよくわからずに使っている、あるいは、簡単に出来ることを
わざわざ難しくして書いてる」のが多数なのだがな。

307 :デフォルトの名無しさん:2006/04/22(土) 21:41:45
30%の確立でAの意味 70%の確立でBの意味
というときに何故かAだと確信するやつがいる

両方の意味を推測するところまでいかなくても、せめて70%の方を選んで欲しい
ヘタとかじゃなくて根本的に仕様と違うコードになりやすい……

308 :デフォルトの名無しさん:2006/04/22(土) 21:47:24
「ほぼ女」と「100%女」では0と100くらい違うと思うよ

309 :デフォルトの名無しさん:2006/04/22(土) 22:04:17
つーかコメント欄あるんだからコメント欄に直接書けよ。
大体どこがスレタイに沿った話なのか。

310 :デフォルトの名無しさん:2006/04/22(土) 22:21:20
まあまあ、センセ。

そう熱くならずに。


311 :デフォルトの名無しさん:2006/04/22(土) 22:34:46
目視のみでほぼ100%デバッグできるクラスを小さいクラスとするならば、
オレも小さなクラスならば、目視のみでほぼ100%デバッグできるよ。

312 :デフォルトの名無しさん:2006/04/22(土) 22:43:57
>>311
それは俗に言う「トトロ爺」というやつですか?


313 :デフォルトの名無しさん:2006/04/22(土) 23:01:46
トラックバック:http://d.hatena.ne.jp/yaneurao/20060423

やねちゃんトラックバック消しやがったwww

314 :デフォルトの名無しさん:2006/04/22(土) 23:35:08
まあ2chからのトラックバックなんてスパムと変わらんからな

315 :デフォルトの名無しさん:2006/04/22(土) 23:37:31
2chからのトラックバックってどうやんの?

316 :デフォルトの名無しさん:2006/04/23(日) 01:03:31
トラックバック:http://d.hatena.ne.jp/yaneurao/20060423

消さんでもいいやん

317 :デフォルトの名無しさん:2006/04/23(日) 01:29:59
消されてもいいやん

318 :デフォルトの名無しさん:2006/04/23(日) 01:31:56
やねの話題は他のスレでいいんじゃね?

319 :デフォルトの名無しさん:2006/04/23(日) 02:02:38
トラックバックもう消してるw

ハテナが気になって気になってしょうがないのかねw

なんか意外と度量小さいよなw

320 :デフォルトの名無しさん:2006/04/23(日) 02:30:48
>>316
ちょっと読んでみたけど、世間では机上デバッグとか言われてるものじゃないだろうか。 > 目視なんとか

321 :デフォルトの名無しさん:2006/04/23(日) 03:13:56
漏れもそう思う。

322 :デフォルトの名無しさん:2006/04/23(日) 04:32:29
やねより319のほうが何倍も痛々しい件について

323 :デフォルトの名無しさん:2006/04/23(日) 10:02:58
トラックバック:http://d.hatena.ne.jp/yaneurao/20060423

まぁまぁそういうなよ。取り巻き君

324 :デフォルトの名無しさん:2006/04/23(日) 11:37:32
>>320
逆に最近の若いのは机上デバック出来無いんだぁー
ってことに恐怖を感じるね。

他人のソース読んでると、色々感じるし。

325 :マイク ◆yrBrqfF1Ew :2006/04/23(日) 14:17:32
騎乗ファックなら俺でもできるんだが

326 :デフォルトの名無しさん:2006/04/23(日) 14:33:28
#define local static


cec32.cなんだが、なんか吐きそうになった。

327 :デフォルトの名無しさん:2006/04/23(日) 14:36:09
おっとタイポ。crc32.cね。

328 :デフォルトの名無しさん:2006/04/23(日) 19:19:56
>>326 どこらへんが琴線に触れたの?

329 :デフォルトの名無しさん:2006/04/23(日) 20:11:46
>>328
そのコードを書いたのはお前だろ?


330 :デフォルトの名無しさん:2006/04/23(日) 21:35:08
>>328はMark Adlerだな。

331 :デフォルトの名無しさん:2006/04/27(木) 22:06:21
エクセルのマクロでは2バイト文字「混じり」の変数や関数を書く奴がたくさんいるんだが
世間ってもうそうなっちゃったのかな・・・

332 :デフォルトの名無しさん:2006/04/27(木) 23:39:10
>>331
VBの時代からだっていただろそういうやつ。
別に日本国内だけで使うなら、多バイト使ってもよかろうな時代

333 :デフォルトの名無しさん:2006/04/28(金) 00:19:39
古くはDB3の時代からそういう香具師はいた。

334 :デフォルトの名無しさん:2006/04/28(金) 00:29:51
入力が面倒だが、判りやすいというメリットがあるしな。

335 :デフォルトの名無しさん:2006/04/28(金) 00:46:40
業務独特の用語なんかは、対訳表みたいのを作ってないプロジェクトだと、
勝手に英訳しても意味分からなくなるし、ローマ字つづりにするくらいなら、
そのまま漢字でって思うな。

あと、外来語のカタカナ表記をそのままローマ字綴りにするドアホとか、
いっそ、そのまま全角カタカナで書けって思うな。
「コメント」をcomentとか「カルテ」をcaruteとか。
(KOMENTOとかKARUTEとかになってないってことは、本人は英語綴りの
つもりで書いてるのかもしれんけど)

336 :デフォルトの名無しさん:2006/04/28(金) 01:07:20
殆ど全ての } に、どの { と対応しているかをコメントしている

int hoge( … )
{
  ……

  if( … ){
    ……
  } // end if
  ……
  switch( … ){

    ……

  } // end switch

  ……
} // end hoge

インデント見たらわかるだろとか、コメントしておかないと分からなくなるくらい
でかいブロックを書く前に気付けとか、色々言いたくなったがきりがないのでやめといた。

337 :デフォルトの名無しさん:2006/04/28(金) 03:32:06
プログラマの全員が自学意欲のあるやつではないので、最初に接した規約がクソだとそうなるよね。
言わんと治らんと思う。

338 :デフォルトの名無しさん:2006/04/28(金) 04:23:40
@rank[sort {$x[$a] cmp $x[$b]} 0.. $#x] = 0..$#x;


339 :デフォルトの名無しさん:2006/04/28(金) 07:41:32
コメント自体よりもendが邪魔だな

340 :デフォルトの名無しさん:2006/04/28(金) 07:48:57
俺は最近、少し長く深くなってしまったブロックはこう書いてる。

int hoge( … )
{
/**/ ……
/**/
/**/  if( … ){
/**/  /**/……
/**/  }
/**/ ……
/**/  switch( … ){
/**/ /**/
/**/  /**/……
/**/ /**/
/**/  }
/**/
/**/ ……
}
だから、長くならないように気をつけるようになった。

341 :デフォルトの名無しさん:2006/04/28(金) 08:13:31
>>340
特定しました

342 :デフォルトの名無しさん:2006/04/28(金) 16:44:08
>>340
じゃあなんで
int hoge(…){…if(…){}}
って書かないの?
一行でかけるべ?


343 :デフラグさん ◆mRgSYalFkQ :2006/04/28(金) 20:15:09

  [゚д゚] デフラグガカンリョウシマシタ
 /[_]ヽ
  | |
(())034>>efghiinot{{}}??………あいかかけじってででななのべゃるん一行書

344 :デフォルトの名無しさん:2006/04/28(金) 20:54:08
>>331
Java だと漢字の識別子とか使えるぞ。
ソース読む時に一回 char 配列に入るわけだが、そこでシステム
デフォルトまたは指定のエンコードから Unicode に変換していて、
それから解釈するので全く問題なくコンパイルできる。

元が utf8 だったりしたらもう2バイトどころかサロゲートペア
入れたら1文字で最大6バイトになる。日本語はだいたいは1文字
3バイト。


345 :デフォルトの名無しさん:2006/04/28(金) 20:56:09
>>344
で?

346 :デフォルトの名無しさん:2006/04/28(金) 20:58:36
つまり米国人は自国の文化を他国におしつける、なんとも傲慢な連中だという、ありがたいお話です。

347 :デフォルトの名無しさん:2006/04/28(金) 23:04:17
いつもながら、http://d.hatena.ne.jp/yaneurao/20060428 は良いネタを提供してくれる。
>まして、腕試しとして最初に与えられる仕事というのは、どうでもいい仕事、
>あまり会社にとって重要ではない仕事です。コードが書き殴ってあったり、
>書いた人がどうしようもない人で既に会社をクビになっていたり。
>すなわち、自分の実力の30%〜40%でこなせることすらとても出来ない人が
>書いているコードなわけです。酷いコードで当たり前ではないですか?
>そんな仕事しかもらえないうちはまだまだ自分も信頼されてないんだなぁ、
>と認識することです。もっともっとスキルを磨くことです。

いやー、言いたいことは分かるんだけどさ。
でも、世の中には、普通に1から書けば30%〜40%でこなせるのに、
無理やりそんなレベルのソースコードを与えられて
「設計は元のままで、修正は極力少なくして」なんて
注文を与えられた結果、130%〜140% の力を発揮しなくては
いけなくなる事も結構あってさ。

そこら辺、発注している方の人間って、全然気づいていないんだよね。
「普通にやれば30%〜40%でこなせる上、もう既に半分ぐらいモノが
出来上がってるんだから、楽勝だろ」なんて思っていたりする。


348 :デフォルトの名無しさん:2006/04/28(金) 23:12:34
>>347
だよね。前回の机上デバックは理解できる部分もあったけど、
今回のは、相手のイラツキがまるで理解できてないだけに、
ちょっとびっくりした。

大学院出と仕事してるとか、文系みたいなこと言ってるし。

我流で育った地雷みたいな人って思た。

349 :デフォルトの名無しさん:2006/04/28(金) 23:32:28
>>347
なにこの人?
一見するとただの勘違いに思えるんだけど


350 :デフォルトの名無しさん:2006/04/28(金) 23:32:30
また、そういう仕事は、謂わば「チキンラン」みたいなもので、
如何に「発注者のスキルでぎりぎり理解できるレベル」の
モノを上げるか、っていうところに気を使うんだよな。

基本的に発注者が理解できるレベルを超えてはいけない。
でも逆に、あまりレベルが低すぎてもいけない。
その上勿論、正しく動作しなくてはいけない。


351 :デフォルトの名無しさん:2006/04/28(金) 23:54:05
主役の側にいる人間をうらやましがっている脇役がいっぱいいるようにしか見えん

352 :デフォルトの名無しさん:2006/04/29(土) 00:07:35
これは俺の物語だ

353 :デフォルトの名無しさん:2006/04/29(土) 10:15:41
#define repeat(n) for(int lnum = 0; lnum < n; lnum++)

ちょっと便利かもと思った。これじゃ多重ループできないけど

354 :デフォルトの名無しさん:2006/04/29(土) 10:17:41
多重ループできるお

355 :デフォルトの名無しさん:2006/04/29(土) 10:34:05
できれば副作用にも安全なほうが嬉しいな。
#define repeat(n) for(int lnum = 0,lend = (n); lnum < lend; lnum++) 

#ま、こんな詰まらん事でマクロ使われると鬱陶しくてかなわんけど

356 :デフォルトの名無しさん:2006/04/29(土) 10:40:14
PICマイコン のC コンパイラでは for( i =N ; i ; i--) しか最適化されないのがあって
だからわざわざ #define REPEAT( N,REG) みたいに 定義してたり

357 :デフォルトの名無しさん:2006/04/29(土) 11:47:26
>>344
Javaは16bit以上の文字は認識しない。
内部で使われているのは厳密なUnicodeではない。

358 :デフォルトの名無しさん:2006/04/29(土) 12:55:27
> #define repeat(n) for(int lnum = 0; lnum < n; lnum++)

こういうキーワードを置き換えたりするようなマクロをつかってるのって、へただなぁと思うね。

bool,true,falseあたりも、独自に定義したりするのって、MSあたりならまあいいけど、
個人とか、会社の部署とかで独自にやるのはカンベンして欲しいと思う。

359 :デフォルトの名無しさん:2006/04/29(土) 12:59:19
>>358
へただなぁと思うからこのスレに書いたんだろ。
何を言ってるんだ。

360 :デフォルトの名無しさん:2006/04/29(土) 13:01:30
上で書いた人のカキコを見る限り下手コードのつもりで書いてない希ガス

361 :デフォルトの名無しさん:2006/04/29(土) 14:10:18
俺の友達には、通常の演算ごときに括弧をネストしまくる人がいます。
コードが見難くてしょうがない。
俺がそのコードに携わる訳じゃないから別にいいけど。
あいつ極度の心配性なのかな・・・。

362 :デフォルトの名無しさん:2006/04/29(土) 14:55:02
算数が苦手で足し算と掛け算どっちが先か分からないから全部括弧付けてんだろ

363 :デフォルトの名無しさん:2006/04/29(土) 15:08:45
括弧付けるぐらいでカッコつけてる気になってるんじゃないの?

364 :デフォルトの名無しさん:2006/04/29(土) 15:14:04
                                      
    /i()()_/ミ|                        o ← >>363
   /ヾ/ <ゝ.\_       __          //
  iヾ/    ___ソ      ⌒ヾ .ミ.\  ガッ   / /
  |=|  ヽ┬ ´          _)))))))    /   /
  ヾ|     !、        /_≡三./   /   /
   |     \___/ ̄ ̄\      ☆    /
   |   /       、  \  |\/|_
   ヽ   (      /\_└-i┐  / ☆
    \__|   |ノ__,,/ ̄'─' ヽ--'┘  \
     | | `|  |        ☆  |/\| ̄
     ヽ |  '| .|      ///
     ┌'┤┌'┤


365 :デフォルトの名無しさん:2006/04/29(土) 15:58:54
インタプリタ系だと乗除と加減の優先度が同じことがたまにあるから、もしかしたら趣味で書いてるヤツがウンコみたいなヤツで、変な習慣が付いてしまったのかな?

366 :デフォルトの名無しさん:2006/04/29(土) 19:17:23
納品チェック用の静的解析ツールの中にはしょぼい演算でも括弧がないと
「問題あり」
としてレポートしてくるツールがあるな

どことは言わんが30万もするソフトなのにそんなレポートを出すなと

367 :361:2006/04/29(土) 21:14:36

なんか「係数を新しくつったときの為」なんだってさ。
なんて目に優しくないんだろう。

368 :デフォルトの名無しさん:2006/04/29(土) 21:19:21
>>361
Lisper に喧嘩を売るつもりならば止めておけ。

相手は手ごわいぞ。


369 :デフォルトの名無しさん:2006/04/29(土) 21:37:01
>>367
お前なぁ、仕事中に2chかよ。

お前のコードだって目くそ鼻くそだろうが。
何えらそうに…はぁーあ

370 :デフォルトの名無しさん:2006/04/29(土) 21:43:06
土曜日の 21:00 に、見ず知らずの人間をとっ捕まえて
「お前、仕事中だろ。」と言い切る人間だけには
なりたくないものだな。


371 :デフォルトの名無しさん:2006/04/29(土) 22:10:57
つーか、今日は休日だろ。

372 :デフォルトの名無しさん:2006/04/29(土) 22:15:09
練習でdosプログラミングしてみましたが、データを出力するときに枠線を付けた方が見やすいだろうと思い
散々推敲したあげくできたのが
「○〜〜〜〜〜〜〜○」

どう見ても精子です。本当にありがとうございました。

373 :デフォルトの名無しさん:2006/04/29(土) 22:21:42
>>370
はぁ?

361 名前:デフォルトの名無しさん[sage] 投稿日:2006/04/29(土) 14:10:18
俺の友達には、通常の演算ごときに括弧をネストしまくる人がいます。
コードが見難くてしょうがない。
俺がそのコードに携わる訳じゃないから別にいいけど。
あいつ極度の心配性なのかな・・・。

374 :デフォルトの名無しさん:2006/04/29(土) 22:28:43
>>373
はぁ?

367 名前: 361 [sage] 投稿日: 2006/04/29(土) 21:14:36 
なんか「係数を新しくつったときの為」なんだってさ。 
なんて目に優しくないんだろう。 

369 名前: デフォルトの名無しさん [sage] 投稿日: 2006/04/29(土) 21:37:01 
>>367 
お前なぁ、仕事中に2chかよ。 


375 :デフォルトの名無しさん:2006/04/29(土) 22:35:29
まぁ見ず知らずの人間とっつかまえて、暴言を
吐く(カキコする)ぐらい、2ちゃんでは日常茶飯事
なのだがw

376 :デフラグさん ◆WaDYW8eWxU :2006/04/29(土) 22:38:36
>>375

  [゚д゚] デフラグガカンリョウシマシタ
 /[_]ヽ
  | |
、、ぁいえかがくぐすずずだちっつてでとなののはままゃららるをん
カキコ事人吐常日暴知茶見言間飯()2w

377 :デフォルトの名無しさん:2006/04/29(土) 22:41:47
「暴言」と「見当外れ」は
似て非なるもの。


378 :デフォルトの名無しさん:2006/04/29(土) 22:43:10
ところで、本題って何だっけ?w

379 :デフォルトの名無しさん:2006/04/29(土) 22:46:22
精子です。

380 :デフォルトの名無しさん:2006/04/30(日) 00:17:01
>>374
池沼かお前

381 :デフォルトの名無しさん:2006/04/30(日) 19:22:07
ごめん、>369が何を見て仕事中であると断言できたのか、
誰か教えてくれ。

382 :361:2006/04/30(日) 20:04:01
きっと俺の初書き込みの時間が14時だったからだと思お。

383 :370:2006/04/30(日) 20:09:35
しかし、そもそも「土曜」だったのでは?


384 :デフォルトの名無しさん:2006/04/30(日) 20:19:04
土曜どころか、祝日。

385 :370:2006/04/30(日) 20:22:14
というか、俺は >>361 は学生だと思っていたのだが、
そこら辺、どうよ?


386 :361:2006/04/30(日) 20:26:44
御名答

387 :デフォルトの名無しさん:2006/04/30(日) 22:21:26
ネタ師か。暇人だな。
しかし黄金厨にしてはよくやったぞ。
でかしたぞ。誉めて遣わす。

388 :デフォルトの名無しさん:2006/04/30(日) 22:48:54
>>387
>ネタ師か。暇人だな。

ん? >>369 のこと?


389 :デフォルトの名無しさん:2006/05/01(月) 02:17:07
友人という2文字を見逃してたね

390 :デフォルトの名無しさん:2006/05/01(月) 02:27:26
御名答


391 :デフォルトの名無しさん:2006/05/01(月) 06:20:09
インデントを、スペースとタブで混在しているのをみると下手だなと思う。
タブで統一してあれば、タブ幅を変えるだけでインデントの幅を
変更できるから便利なのに。

392 :デフォルトの名無しさん:2006/05/01(月) 06:22:28
どっかからコードをコピペした結果
タブとスペースが混ざることがある。

393 :デフォルトの名無しさん:2006/05/01(月) 06:35:48
全部スペースにすればいいのに、と思う。

394 :デフォルトの名無しさん:2006/05/01(月) 07:37:26
タブなんてなくなればいいのに、と思う

395 :デフォルトの名無しさん:2006/05/01(月) 12:37:40
タブって固定幅フォントでテキストがりがり書いてた頃の名残って気がする。
HTMLとかなら伝送量が減るというメリットはあるが、微々たる物。
今のメリットは、やっぱり1keyでインデントできるあたり?autoindentしてりゃ不要だけど。

396 :デフォルトの名無しさん:2006/05/01(月) 13:20:05
スペースでインデントるとちょっちコメント化ってときにずれるのがちょっちいや

397 :デフォルトの名無しさん:2006/05/01(月) 13:24:48
/**/
 なんかのコード
/**/

 ↓

/*
 なんかのコード
/**/


398 :デフォルトの名無しさん:2006/05/01(月) 13:28:01
無駄な行が入るって時点でずれてんだがだが

399 :デフォルトの名無しさん:2006/05/01(月) 13:48:07
インデントってデータに含める必要なくね?
エディタが構文解析してインデント表示すればいいじゃん。

400 :デフォルトの名無しさん:2006/05/01(月) 14:14:11
IDEで、それを通じてしかいじんないならな。
VBぐらいか。

401 :デフォルトの名無しさん:2006/05/01(月) 16:36:25
IDEの中には勝手に構文解析してインデント変えるのもあるね。迷惑なんだが。
EclipseのXML関係プラグインにその手のがあったはず。

402 :デフォルトの名無しさん:2006/05/01(月) 22:25:07
こんなの。

#if A
...
#if B
{
#if C || D || F
...
#endif
}
...
#endif
#else
...
#endif


403 :デフォルトの名無しさん:2006/05/02(火) 00:19:16
なにその
#if B
{
を改行とって
#if B {
にしたらエラーになりそうな文

404 :デフォルトの名無しさん:2006/05/02(火) 00:25:43
>>403
突っ込みが的外れすぎ。

405 :デフォルトの名無しさん:2006/05/02(火) 01:56:14
>401
今は環境がへっぽいから迷惑なことも多いけど
将来的にはそれくらい環境側でやってくれよって方向が理想かな。俺は。
IDEなりエディタなりが賢くなってくれれば
人間はコード書くことに専念できるし、
つまらん宗教戦争に時間費やすこともなくなる。

406 :デフォルトの名無しさん:2006/05/02(火) 02:46:33
宗教論争なんかに参加しなきゃいい。

407 :デフォルトの名無しさん:2006/05/02(火) 02:59:57
巻き込まれたときどうする?
「タブにしろよ」
「スペースがいいんだよ。」
「お前、どっちがいいと思う。」
「えーと・・」
参加しないで済ませるもんならそうしたい。

408 :デフォルトの名無しさん:2006/05/02(火) 03:03:59
>>407はまだいいほうだな。自分の意見が言えるんだから。
もっと困るのは、勝手に宗教論争始めた奴らのせいで、本当にしたい議論ができないこと。
スレが宗教論争で埋まるってのがいい例。

409 :デフォルトの名無しさん:2006/05/02(火) 03:32:24
>>407
仕事なら権限をもってるやつがきめるだろうし、ネットならスルーすればいい。

410 :デフォルトの名無しさん:2006/05/03(水) 00:48:49
よくみかける
int a;
int *p = &a;

*a = 1;

ってなにがしたいん?

411 :デフォルトの名無しさん:2006/05/03(水) 00:52:02
>>410
*p = 1;
の間違い?

よく見るって、どういう文脈でだろう。

412 :デフォルトの名無しさん:2006/05/03(水) 00:52:25
はじめて見た

413 :デフォルトの名無しさん:2006/05/03(水) 01:03:31
>410
ロシアンルーレット

414 :デフォルトの名無しさん:2006/05/03(水) 01:26:43
>>410
コンパイルエラーのテスト

415 :デフォルトの名無しさん:2006/05/03(水) 01:58:16
>>410はなにがしたいん?

416 :デフォルトの名無しさん:2006/05/03(水) 02:24:02
>>410
m9( ^∀^)プギャー

417 :デフォルトの名無しさん:2006/05/03(水) 05:57:46
>>410
( ^ ω ^ )

418 :デフォルトの名無しさん:2006/05/03(水) 12:26:49
タブとかスペースとか気にしたことないなぁ
eclipseやemacsで作業するようになって
自動整形に頼るようになってから
そのへんまったく気にしなくなりました。
コマンド一つで自分の見慣れた見栄え?になるから
他の人間のソースがアレだとしても、どうでもいい。

タブだのスペースだのを気にする人は
一体何を使って作業してるんですかね。
どうも作業環境自体に改善すべき事項が隠れてる気がするんですが。

エディタにすらできることを、人間様が気遣いしてやってる時点で、
タブ・スペースの量どころではなく、何かが狂ってるのでは…

419 :デフォルトの名無しさん:2006/05/03(水) 12:41:45
外注に数値計算系のコンソールアプリをC++で依頼したら、VCのクラスウィザード
使いまくりのソースが届いたのだが。

世の中そんなもんか?

420 :デフォルトの名無しさん:2006/05/03(水) 13:05:50
>>418
こういうのって、趣味プログラマか脳内プログラマだな。

421 :デフォルトの名無しさん:2006/05/03(水) 13:12:48
前スレでも、よくわかってないやつが一人、ツールで整形するから、
コーディングルールなんていらないって言ってたやつがいたな。

その後、そこらへんを分かってる人が、さりげなくフォローする
カキコをしてたけど、やっぱ意味がわかってなったか。

422 :デフォルトの名無しさん:2006/05/03(水) 13:47:46
CVS(SVN)入れる時に困るので
やっぱ統一せざるをえないのが実情なんだろうか。

423 :デフォルトの名無しさん:2006/05/03(水) 14:00:35
タブ・スペース論争はIDEで緩衝できる話になったからな。

424 :デフォルトの名無しさん:2006/05/03(水) 14:10:20
>>420
…やっぱりわかりますか。

>>421
「コーディングルールまでいらない」とは言ってませんが…
変数・関数名のルールなどは、共同で開発するにあたって必要では。
でも、タブやスペースまで決めておく必要があるかどうかは疑問を感じるのです。

そこまでキッチリ決めておかないといけない環境に興味があります。
>>422 さんの上げた CVS で困る、といった事例が一例なのでしょうか。
でも、入れるときに自動化で整形できそうだけど…

…ああ。その整形に必要なルールを決めるときに、
タブやスペースの量をどうするか、という話なんですかね?
(スレを眺めていた限りでは、
「俺の好みの可読性」にこだわってるだけの話のように見えましたが)

425 :デフォルトの名無しさん:2006/05/03(水) 14:34:46
ttp://www.jajakarta.org/velocity/velocity-1.4/docs-mixed/code-standards.html
ttp://x68000.q-e-d.net/~68user/unix/pickup?CVS%B1%BF%CD%D1%CA%D4

CVSって使ったことないんで少し検索して調べたんですが、
タブとスペースも決めておかないといけないのですか…面倒なんですね…
でも、
「エディタのタブ設定の違いにより、全ての行のタブがスペースに変換されてしまった」
のを「ミス」と言ってしまう理由がわからない…
そんなの、比較に使うプログラム側で対処できそうだけど…

426 :デフォルトの名無しさん:2006/05/03(水) 16:28:44
DFとかはスペース・タブは無視して比較できるね

427 :デフォルトの名無しさん:2006/05/03(水) 17:11:47
いろいろあるから、統一したほうがシンプルに解決できるね。

428 :デフォルトの名無しさん:2006/05/03(水) 17:16:57
Eclipseにもタブスペース無視ってオプションがあると思ったが

429 :デフォルトの名無しさん:2006/05/03(水) 17:40:54
ソース管理ツールに登録前に整形ツールに通すってルールのところは
ともかく、統一しなくても、比較時にツールで何とかしよう方法だと、いろいろ
問題でそう。

430 :デフォルトの名無しさん:2006/05/03(水) 18:23:46
ソース整形で
って言ってるやつは一人でコーディングしてて複数人での開発経験なさそう
またはソース管理ツール使わずに担当ごとに担当ソースが決まってそう

431 :デフォルトの名無しさん:2006/05/03(水) 18:36:20
>>430

>って言ってるやつは一人でコーディングしてて複数人での開発経験なさそう
別にどっちでもいい派なんだけど、この根拠はなに?


>またはソース管理ツール使わずに担当ごとに担当ソースが決まってそう
改造ならしょうがないかもしれないが、新規開発で同じソースを複数担当でいじるようにする理由がわからない。
共通部分にしても、共通の担当者を決めてやるのが効率的で間違いが起こりにくい開発方法。



432 :デフォルトの名無しさん:2006/05/03(水) 18:36:38
はいはい、お前はもういいからね

433 :デフォルトの名無しさん:2006/05/03(水) 18:37:22
ミスった

>>430
はいはい、お前はもういいからね

434 :デフォルトの名無しさん:2006/05/03(水) 18:42:09
>>431
ほんとうに小規模開発しか経験なさそう。

435 :デフォルトの名無しさん:2006/05/03(水) 20:58:23
>>434
大規模開発だと、同じソースを複数担当でいじることがあり得るんでしょうか?

例えば、
担当者が辞めてor変わって引き継ぎする…といった感じですか?
それとも開発言語からくる制約?

そのへん私に教えてください。お願いします、先輩。

メガネっ娘アニメ声の新人プログラマーから
ウルウルした目でお願いされてるとでも思って…
どうかよろしくご教授のほどを

436 :デフォルトの名無しさん:2006/05/03(水) 21:02:05
そんなことよりなんで>>410はスルーされてるの?
入門書のポインタの解説のときかなりの確率ででるんだけど。
あの変な文脈

437 :デフォルトの名無しさん:2006/05/03(水) 21:05:19
いまはワープロがふつうにあるんだし
テキスト整形にハードタブ使うのなんてナンセンス。
使うとしてもTSVやMakefileなんかの区切り記号として。

438 :デフォルトの名無しさん:2006/05/03(水) 21:05:30
まてまて。入門書のポインタの解説のときかなりの確率で、って、
それつまり単純にポインタの解説したいだけじゃないか?

439 :デフォルトの名無しさん:2006/05/03(水) 21:08:08
>>435
マジレス
>大規模開発だと、同じソースを複数担当でいじることがあり得るんでしょうか?
死ぬほどあり得る


440 :デフォルトの名無しさん:2006/05/03(水) 21:10:24
>>436
せめてコンパイル通るようにしてから言ってね坊や

441 :デフォルトの名無しさん:2006/05/03(水) 21:19:08
>>436
・・・

442 :デフォルトの名無しさん:2006/05/03(水) 22:05:00
>>436
本質とは関係ないけど
int a;
int *p = &a;

*a = 1;

だとint *p = &a;が意味ない。p使ってないし。
それに*a = 1;はどこに入れてるのっ思わね?


443 :デフォルトの名無しさん:2006/05/03(水) 23:36:54
*a = 1;
の部分は
*p = 1;
の間違いだろ?

444 :デフォルトの名無しさん:2006/05/03(水) 23:45:31
>>431 >>435 複数で開発する場合、ソース編集が競合するので排他制御が必要になる。ソース管理ツールを使えば問題ないが使わない場合は他人の変更で自分の変更が消されるのでソースごとに担当を決めて競合を防ぐわけ
cvsなり使って入れば誰が何を変えたか判るから複数で同じファイル触っても全然問題なし

445 :デフォルトの名無しさん:2006/05/04(木) 00:00:27
>>437意味不明
ワープロでプログラミングしてるのか?

446 :デフォルトの名無しさん:2006/05/04(木) 00:42:52
//int a;
int *p;// = &a;
//*p = 1;
ダミーが要る理由はこれやってみりゃ分かるよ。

447 :デフォルトの名無しさん:2006/05/04(木) 00:47:10
//int a;
int *p;// = &a;
*p = 1;
こうね

448 :デフォルトの名無しさん:2006/05/04(木) 01:06:25
>>447
おまえ、危ない

449 :447:2006/05/04(木) 01:18:17
>>448
危ないな。
OS使用の論理アドレス(80000000〜FFFFFFFF)に書き込もうとしちゃーいけないな。

450 :デフォルトの名無しさん:2006/05/04(木) 10:28:38
>>449
OSがそこを使用するという保証はないし、そもそも初期化されないpがその辺を指す保証もない。
つまり、そのコードが全く問題なく動作する可能性も多々ある。

451 :デフォルトの名無しさん:2006/05/04(木) 12:15:09
>450
OSのレベル管理(メモリ保護、特権命令)はそんなにザルなのか?

452 :デフォルトの名無しさん:2006/05/04(木) 12:30:14
>>451
お前の読解レベルはそんなに糞なのか?

453 :デフォルトの名無しさん:2006/05/04(木) 12:39:06
いちいち煽んないで説明してやりゃいいのに。
ホントに低脳ばっかw

454 :デフォルトの名無しさん:2006/05/04(木) 12:39:52
そもそも論理アドレスという概念がない環境もあるし、アドレスのビット数も環境によって全然違う。
>>449が勝手に環境を限定してる上にどの環境のことかも謳ってないのが一番の問題。
まぁ、照れ隠しに知ったかぶりたかったんだろうけど。

455 :デフォルトの名無しさん:2006/05/04(木) 13:16:58
>>391
激しく同意
rubyのソースコード見たとき、おいおい大丈夫かよ、と思った

456 :デフォルトの名無しさん:2006/05/04(木) 13:21:58
はい、一番の馬鹿出ましたー

453 名前:デフォルトの名無しさん[sage] 投稿日:2006/05/04(木) 12:39:06
いちいち煽んないで説明してやりゃいいのに。
ホントに低脳ばっかw

453 名前:デフォルトの名無しさん[sage] 投稿日:2006/05/04(木) 12:39:06
いちいち煽んないで説明してやりゃいいのに。
ホントに低脳ばっかw

453 名前:デフォルトの名無しさん[sage] 投稿日:2006/05/04(木) 12:39:06
いちいち煽んないで説明してやりゃいいのに。
ホントに低脳ばっかw


457 :デフォルトの名無しさん:2006/05/04(木) 14:47:08
>>442
>>411 が見えていないのか。

458 :デフォルトの名無しさん:2006/05/04(木) 14:57:54
a = &a;

459 :デフォルトの名無しさん:2006/05/04(木) 21:21:40
>>458
キタコレ

460 :デフォルトの名無しさん:2006/05/05(金) 00:25:04
初期化なし
0xcccccccc
-858993460
だが、環境にもよるな
コンパイラにもよるし、そもそも32bitアドレス指定じゃないCPUもある
OSが違えば、80000000〜FFFFFFFFがOSが使ってるとはいえない
リアルモードで動こうが(物理アドレスを指示)、プロテクトモードで動こうが(論理アドレスを指示)、
値はコンパイラが同じなら変わらないとは思うけど。

461 :デフォルトの名無しさん:2006/05/05(金) 00:29:51
ちなみにマイナスの意は、
32bitの最上位はキャリービットだ
あっ、知ったかゴメソw

462 :デフォルトの名無しさん:2006/05/05(金) 00:39:36
Cつかう上でCPUの動作やアドレス空間を意識できるのは大変好ましいけど、
特定のアーキテクチャに毒されすぎるのもよくないなと思った。

463 :デフォルトの名無しさん:2006/05/05(金) 01:25:17
>あっ、知ったかゴメソw

いや、本当にしったかだと思う。
変数初期化してなかったらなにが入ってるか分からないなんて、そんな、
実際に中身をみて確かめるようなことか?

マイナスの意はキャリービットってなんだよ。



464 :デフォルトの名無しさん:2006/05/05(金) 01:33:18
>>461
頼むから、コテ酉付けてくれ。

465 :デフォルトの名無しさん:2006/05/05(金) 01:49:15
キャリービット知らない?
CPUが分かる条件分岐は2つある。
=と><大小(実際ソースでも比較はこう。文字は文字コード大小比較)
CPUの中でやることは一緒、引き算して、0になればゼロフラグ(Z)が立ち、
負になればキャリーフラグ(C)が立つ。
そして、マシン語の条件分岐命令には尻尾にもし「ビンゴの時の飛ばし先アドレスが書いてある」
プログラムカウンタは通常、clockの逓倍で、逓倍ずつカウントアップしてゆく(アクセスするアドレスは逓倍カウントアップするんだから当然か)、
だがしかし、条件分岐命令のときは、フラグが立っていなかったら、通常のカウントアップ、
フラグが立っていたら、外部からレジスタに取り込んである飛ばし先アドレスをプログラムカウンタに入れる布線論理回路を組んである。
当然、プログラムカウンタの値はアドレスバスに乗り、メモリに届く。
ごっめ〜ん、また知ったかしちゃったw
ちなみにプログラムカウンタの値はデバッガでも見れる、x86系ならEIPレジスタというのがそれだよ。
ステップイン実行すると通常は、逓倍カウントアップされるのが見て取れる。
ジャンプやCallや条件分岐の命令が来ると、命令の尻尾についてるアドレスに飛んだりするのが見て取れる。
長文ゴメンネ〜、でも知っといて損ないよ

466 :デフォルトの名無しさん:2006/05/05(金) 01:53:19
public static string GetSpace(int Count)
{
 string text1 = "";
 for (int num1 = 0; num1 < Count; num1++)
 {
  text1 = text1 + " ";
 }
 return text1;
}


467 :デフォルトの名無しさん:2006/05/05(金) 01:53:50
>>465
お願いだから、コテ酉付けてくれ。

468 :デフォルトの名無しさん:2006/05/05(金) 01:56:10
>プログラムカウンタは通常、clockの逓倍で、逓倍ずつカウントアップしてゆく
へ〜

469 :デフォルトの名無しさん:2006/05/05(金) 02:00:04
>>465
>負になればキャリーフラグ(C)が立つ。
帰れ莫迦。

470 :デフォルトの名無しさん:2006/05/05(金) 02:06:51
>>465
どうぞこちらのスレへお越しください。
http://pc8.2ch.net/test/read.cgi/tech/1141400056/

471 :デフォルトの名無しさん:2006/05/05(金) 02:40:39
ttp://yougo.ascii24.com/gh/37/003769.html
きちんとした資料を提示して、一発で論破して頂きたい。
煽りは資源の無駄使い。

472 :デフォルトの名無しさん:2006/05/05(金) 02:58:26
>>471
74HC283の規格表をあたるか、“4bit full adder” でググれ。
出力が 5bit あるのに気付けばよし。
それと、“2の補数表現” についても学習せよ。
clockの逓倍がどうのこうの、という知能の低い理解については
“バイトマシン 命令長” あたりか。

473 :デフォルトの名無しさん:2006/05/05(金) 03:09:04
しかし、ここまで「知ったか」と言う言葉を自身満々に使う香具師も初めて見たな。
そもそもスレ違いだということに気づいてとっとと消えて欲しいものだが。


474 :デフォルトの名無しさん:2006/05/05(金) 03:14:08
本当にいるんだな。こういう奴。
>465は「釣れたw」とか書き捨てて消える前に何かコードを残していってよ。
多分スレ違いにはならないだろうからさ。

475 :デフォルトの名無しさん:2006/05/05(金) 03:46:31
>>465
もうこのスレ見てないかもしれんが、そのなんちゃって知識を本物にしたければ
Write Great Code でも嫁。この本はマジでオススメ。

476 :デフォルトの名無しさん:2006/05/05(金) 10:16:13
>>465 キャリーフラグが存在するのはCPUのregisterの中だ。お前が言いたいのは符合ビットだろw

477 :デフォルトの名無しさん:2006/05/05(金) 10:24:15
Write Great Codeみたいな糞本薦めてる時点で475の能力が知れたな。

478 :デフォルトの名無しさん:2006/05/05(金) 10:34:17
このスレはどうしてこんなにぬるいんですか?

479 :デフォルトの名無しさん:2006/05/05(金) 10:37:56
煽りレベルがイマイチだからさ。 
いきなり正解ぶつけて煽り文句入れたって踊らない。
相手の技術レベルに合わせてバカ話を引き伸ばし、抜き差しならないところまで追い込んでから
「ネタでした」発言を引き出すくらいからがスタートらいんだな

480 :デフォルトの名無しさん:2006/05/05(金) 11:05:26
>正解ぶつけて煽り文句入れたって踊らない。
根性無いな。
他スレで暴れてるGW厨は正論のひとつやふたつでは潰れなかったんだが。

481 :デフォルトの名無しさん:2006/05/05(金) 11:47:55
条件分岐がいっぱいあるコード

482 :デフォルトの名無しさん:2006/05/05(金) 13:11:00
>476
Zフラグだって、レジスタの中だぞw
そもそも計算に出し入れする入れ物もレジスタだ。
CPUの中でやってることは、入れ物の入り口と出口をトリガしてやっている、これらのトリガ信号は、フェッチサイクルで取り込んだ命令をデコードしてばらして、ばら撒かれたものだ、
そして実際トリガされるときトリガ信号たちは、トリガ信号群自身あるいはデコードを使ってタイミングをずらしてトリガ行われる。
トリガされる部分はトライステートゲートという回路を使う。レジスタはただのRatch、FFの塊だ。
>バイトマシン
命令長が違ったり、実行サイクル長が違っていれば、プログラムカウンタがマスターclockの「定倍」で動作するはずはない。
俺は逓倍と言ったはずだ。逓倍と分周。逆の言葉だ、意味分かるか?逓倍は整数倍だ。
話を戻して、プログラムカウンターの入り口は2つあって、実行サイクルでとりこんだアドレスを取り込む入り口と、通常のカウンタ動作でカウントアップ値を取り込む入り口だ。
その入り口に実行サイクルの最後のほうでトリガが掛かる。そこでプログラムカウンターの中の値がリニューアルされる、そしてアドレスレジスタを経てCPU外に放出だ。
じゃあ、ご希望に答えて

釣れたw?

かなりすれ違いという声も聞こえそうな内容だが。

483 :デフォルトの名無しさん:2006/05/05(金) 13:16:51
というわけで、このように見事釣り宣言出ましたので、
馬鹿は482だというのが確定しました。

皆さんお疲れ様でした。

484 :デフォルトの名無しさん:2006/05/05(金) 13:19:34
>>475
>Write Great Code
本屋で探してみます。

485 :デフォルトの名無しさん:2006/05/05(金) 13:19:39
長い割には今一面白くなかったな。

486 :デフォルトの名無しさん:2006/05/05(金) 13:30:45
ID無いから面白くないね

487 :デフォルトの名無しさん:2006/05/05(金) 13:35:07
IDがあれば、全部482の自演だと分かって面白いのにな

488 :デフォルトの名無しさん:2006/05/05(金) 13:59:25
まあ、キャリーフラグと符合ビットが別レジスタにあるということなら、
俺もキャリーフラグとキャリービットはしっかり使い分けて書いたんだがなw

489 :デフォルトの名無しさん:2006/05/05(金) 14:01:59
>>482やめてくれ。腹がよじれる。どこの高校生か知らんがこっちはプロの組み込み系プログラマだ。

490 :デフォルトの名無しさん:2006/05/05(金) 14:04:48
>>482
m9(^Д^)プギャーーーッ

491 :デフォルトの名無しさん:2006/05/05(金) 14:15:27
ほう、組み込み系プログラマがμコードを知っている・・・
そんなアフォなw
まあ、ハードウェア割り込みの時のベクタ飛びと、
PUSH-CALL-RET-POPは知っとく必要あるな

492 :デフォルトの名無しさん:2006/05/05(金) 14:45:32
なんか、昔のSF小説でプログラミングの事が語られてるシーンみたいだ


493 :デフォルトの名無しさん:2006/05/05(金) 14:53:32
>>489 じゃあ M16あたりでコンテキスト切り替えのコードでも書いてみて

494 :デフォルトの名無しさん:2006/05/05(金) 15:07:39
最近まで担当させられた業務は悲惨だった
担当したシステム全体的な思想が、継承して機能拡張するというものだったので
本来、superの特定のメソッドをオーバーライドすれば最小限の変更ですむはずが
そのsuperの作りが悲惨で、
・変更したかったメソッドがprivate:メソッドA
・メソッドAを呼んでいるのがprivateメソッド:メソッドB
・メソッドBを呼んでいるprotectedメソッドが400行近くある:メソッドC
・メソッドCは他のprivateメソッドを呼んでいる:メソッドD
・メソッドA, B, C, D何れもアクセッサメソッドがないプロパティにアクセスしている
・プロパティへのインスタンス代入を宣言部で行っている
・マップやリストへの初期値設定はコンストラクタで行っている
・コンストラクタでは上記初期化以外にもう少し重要な処理を記述している

メソッドAに2行記述するだけでよかったはずが、コンストラクタ含めほぼ丸写し状態w


495 :493:2006/05/05(金) 15:11:00
ごめんなさい。知ってる言葉並べてみただけです。

496 :デフォルトの名無しさん:2006/05/05(金) 15:16:37
>>493 M16てM16Cのことか。ルネサスでSHに喰われるかと思いきや最近初心者用のマイコンボードで良く使われてるねえ。勉強中なのかい?一つ前の16bitCPUの8bit 16bit切り替えフラグは悪魔的な設計だったな

497 :デフォルトの名無しさん:2006/05/05(金) 16:56:17
ここでエスパーの俺が>482の心を読んでやるぜ。

『済みません、俺(482)本当は>465とかじゃないんです。
 皆が>465にレス返してもらっていたのに嫉妬してついやっちゃいました。
 俺(482)デブオタヒッキーで誰から相手してもらえません。
 お願いです。どんなレスでもいいんで相手して下さい。』

OK、皆やさしい人ばかりだから沢山レスしてもらえるさ。だから自殺は止めような。

498 :デフォルトの名無しさん:2006/05/05(金) 17:02:44
>>496
M16CはH8と比べてレジスタが少ない構成で割り込みを多用するなら逆に使い易いね。
それにc言語でも使い易いから、いい感じ。

SHはクロック高めでいいんだけどC言語使わないと性能発揮出来ないし
レジスタ多いから割り込み頻繁にかけるには今ひとつパフォーマンス出ない
内蔵DSP命令も、精度的にゲームにでも使わなきゃ意味ないだろのれベルだしな

499 :デフォルトの名無しさん:2006/05/05(金) 17:09:47
悪いな、>>465=>>482
全貌への興味津々wか?、なら更に言うと、
すべては>>446から始まった
要は、>>446=>>447=>>449=>>451=>>460=
>>461=>>482=>484=>488だ、これが俺の全レスだ
何故かって?それは本人だからだw
いや、釣らせてもらって悪かったw、大量だったよw
とレスを返して欲しかった訳かw

500 :デフォルトの名無しさん:2006/05/05(金) 17:23:00
>>499
スマンな。 巧い煽りを入れられなくて。 

ただ、演技入れるならもうちょっとソレらしくやってくれよ
透けすぎ

501 :デフォルトの名無しさん:2006/05/05(金) 17:23:05
日本語でおk

502 :デフォルトの名無しさん:2006/05/05(金) 17:29:27
>>500
いや、俺は自分でウソと思ったことは書いてないよ。
抽象的に書いたから、とりようによっては誤りかもしれないし、
実際誤りもあるかもしれない。
ただ、どのCPUでも当てはまるであろうということを主眼には書いた。
割り込みに関しては、アーキテクチャによってかなり違いがあるし、CPU内各所にストップ掛けるところが多くて難しい・・自分にとっては

503 :デフォルトの名無しさん:2006/05/05(金) 17:32:42
>>502 なんだよ。 まだ演技続けるのかよ。

>>461なんて噴飯モノで、こんな勘違いしてる奴が実在するなんて信じられないぞ


504 :デフォルトの名無しさん:2006/05/05(金) 17:37:54
>>498最近M16C/80て16ビットなのにアドレス空間は32ビットと同じ石を使ったよ。DSP命令は確かにあったけどuITRON使ったから最適化されたコードが吐かれてたかどうかは不明。

505 :デフォルトの名無しさん:2006/05/05(金) 17:41:09
>>460で書いてる事も間違い。
【値はコンパイラが同じなら変わらない】のではなく
VCでDebugでコンパイルした時に この値にワザワザ初期化するコードが追加されるだけ
VCでDebugを外せば追加されず、結果は不定となる。

さらに、マイナスで表現してるのは意味がない。
32bitの最上位をマイナスとするかどうかは人の頭の中にしかない



506 :デフォルトの名無しさん:2006/05/05(金) 17:42:47
また・・・まだやるのかよ
>>504 最適化するのはHEWでuITRONじゃないだろ。

507 :デフォルトの名無しさん:2006/05/05(金) 17:49:17
元々キャリーは桁上がりを意味する。マシン語で引き算するときはボローが発生する。
ボローの設計はCPU依存でキャリーフラグが立つのもあれば、キャリーフラグを立てておいてボローが発生するとキャリーがクリアされるとか色々だ。

508 :デフォルトの名無しさん:2006/05/05(金) 17:50:25
>>503
フラグとは書いちゃ居ないよ。

ハードウェア割り込みに関しては、IR(命令レジスタ)に取り込むことなく
割り込み来たら、マスクビットと演算させて、多少のレジスタのローテートはあるかもしれないが、
割り込みピンから受けた割り込み番号をほぼ同じ形でプログラムカウンタに取り込み、次に、
該当アドレスすなはちベクタテーブル上の割り込み処理アドレスを再びプログラムカウンタに取り込み、
割り込みルーチンに飛ぶという形、いわゆる割り込みベクタ方式が一般的だと思う。
デバッガで割り込みはINT命令(ソフトウェア割り込み)で確認できる程度なのが残念だ。
まあ、当然か、デバッグ処理中のマウス・キーボード操作のデバッガなんか・・・
ん、作ろうと思えばできるのか・・・、デバッガは難しすぎる、自分にとっては。

509 :デフォルトの名無しさん:2006/05/05(金) 17:52:27
ここは何のスレだよ

510 :デフォルトの名無しさん:2006/05/05(金) 17:54:02
ときどき、スレタイのことも思い出してあげてください

511 :デフォルトの名無しさん:2006/05/05(金) 17:59:08
>>506HEWはコンパイラでなく統合環境だろ。
最近はコンパイラの吐くアセンブラまで読んでないから積和命令が使われてるか気にしてないよ。昔はBIT命令があるのにAND OR使われてたらうんざりさたが最近は気にしない。

512 :デフォルトの名無しさん:2006/05/05(金) 17:59:21
あ、なんかもう終わりっぽい雰囲気だな。みんな明日仕事なのか?

>499
マテ。>410は違うのか?

513 :デフォルトの名無しさん:2006/05/05(金) 17:59:26
お前らいたいコードについて勝たれよ

514 :デフォルトの名無しさん:2006/05/05(金) 18:01:56
>32bitの最上位をマイナスとするかどうかは人の頭の中にしかない
計算結果を元にレジスタにフラグ操作に行くのはALUだぞ、一般的に。
ALUがやるんだから、アドレス演算でもデータ演算でも関係なく。
CPU依存といわれればそれまでだけど。

515 :デフォルトの名無しさん:2006/05/05(金) 18:04:17
>>508はアホや。何もわかっとらん

516 :デフォルトの名無しさん:2006/05/05(金) 18:04:57
>>512
書き間違いで
int a;
int *p = &a;

a = 1;//もしくは*p=1;
でしょ

517 :デフォルトの名無しさん:2006/05/05(金) 18:07:06
>514
マテ。釣りはもういい。

518 :デフォルトの名無しさん:2006/05/05(金) 18:07:12
>>515
リアルモードのIDTR受けやらプロテクトモードで更にGDTR受けやらは省いたよ。

519 :デフォルトの名無しさん:2006/05/05(金) 18:12:17
>>514
サインフラグと同時に使うのはオーバフローフラグであって
キャリーフラグと サインフラグは同時には使わない。
つまり、数として表現するとしても、符号無しと符号付きの二つの形式がある。

さらにポインタの中身は数ですらなく、アドレスであり数として認識してるわけではない。

520 :デフォルトの名無しさん:2006/05/05(金) 18:17:49
>>519
スレ違いですよ

521 :デフォルトの名無しさん:2006/05/05(金) 18:46:07
計算であふれが発生すると、ALUはサイン、キャリー、オーバフローのどのフラグも操作しに行くが、
マスクが掛かっていた場合、それぞれ、
・桁上がりの場合
キャリーとオーバフローが操作される
・引き算など正負ゼロ判定の場合
サイン、ゼロが操作される
・アドレスの場合
どれも操作されれない
でOKですか?CPUは計算前にそれが、アドレスなのかデータなのか(桁上がりアリなのか負アリなのか)は分からないと思うのですが、マスクフラグ立て下げしてやらないと。

522 :デフォルトの名無しさん:2006/05/05(金) 18:47:05
スレ違いだ。

523 :デフォルトの名無しさん:2006/05/05(金) 18:53:03
>>521
もしかして、天然って思ってほしいわけ? 天然でもそこまでの奴はいないよ。

だいたい、マスクってネタがもうアレだよ。 透けてるよ。

CPUの例えば加算命令が発行されたら Z , N , C , OV を備えていれば、4つとも変更されるのが普通なんだからさ。


524 :デフォルトの名無しさん:2006/05/05(金) 18:57:57
まあネタはともかく、
プログラミングってのは、いかに0,1で抽象化するかって所からのスタートだからね

ヘタなコードは基本的にソレが出来ていない。
計算機は数字を扱うものだと言わんばかりに、即値をアチコチばら撒いたりさ

525 :デフォルトの名無しさん:2006/05/05(金) 19:06:24
はいはい
>>507
キャリーとボローの両方を備えてるCPUなんてあるのか?
何てCPU?

と突っ込み入れとくか・・・・・・

526 :デフォルトの名無しさん:2006/05/05(金) 19:13:35
おまえらネタは止めろよ

マスクビット知らない筈が無いだろ?
これなしで、どうやって符号無しと符号付きの区別付くんだ?

ボロー備えてなけりゃ、どうやって引算するんだ? 

いい加減にしとけ

527 :デフォルトの名無しさん:2006/05/05(金) 19:20:44
えー。逓倍とか言ってる奴の相手しておいて今更それは無いんじゃないか。
それとも明日仕事か?

528 :デフォルトの名無しさん:2006/05/05(金) 19:22:23
いや、今日も仕事中

529 :デフォルトの名無しさん:2006/05/05(金) 19:37:25
そうかそれじゃ仕方無いな。お疲れさん。

530 :デフォルトの名無しさん:2006/05/05(金) 19:53:26
定倍と逓倍間違えるようじゃな、日本語もすたれたな
前々から言われてたが実感するよ
てか、オシレータの逓倍と分周知らずに、CPUが早いだの遅いだの言われても、
2ch語で言えばpgrだな

531 :デフォルトの名無しさん:2006/05/05(金) 20:17:06
うん、間違いなく早いよね。

532 :デフォルトの名無しさん:2006/05/05(金) 22:47:38
いい加減にスレ違いヤメレ

533 :デフォルトの名無しさん:2006/05/05(金) 23:26:00
>>482
>俺は逓倍と言ったはずだ。
「定倍」という単語は >>482 で初めて使われている。

534 :デフォルトの名無しさん:2006/05/05(金) 23:59:41
日本語が通じないよ

535 :デフォルトの名無しさん:2006/05/06(土) 04:05:54
お前ら「コンパイラ・スクリプトエンジン」スレに負けてるぞ。
>446が80スレ2日かかったのに、向こうは数時間だぞ。

536 :デフォルトの名無しさん:2006/05/06(土) 05:21:42
『ぱっと見て「ヘタだなぁ」と思う日本語』のスレはここですか?

537 :デフォルトの名無しさん:2006/05/06(土) 09:44:03
>>530
>定倍と逓倍間違えるようじゃな、日本語もすたれたな 
>前々から言われてたが実感するよ 

逓信省が民営化される今、
逓倍などという用語も消え去るのが世の流れ。

「言語学は規範的であるよりもむしろ記述的なのです」


538 :デフォルトの名無しさん:2006/05/06(土) 10:46:52
そんな話ばっかしてても面白くないだろうに。
よし、流れを変えてやる。

有名なんで挙げるのは正直怖いんだが…、
jumanって下手じゃないかと思う。

539 :デフォルトの名無しさん:2006/05/06(土) 11:35:03
>>536
違います。
『ぱっと見て「ヘタレだなぁ」と思う知ったかちゃん』のスレです

540 :デフォルトの名無しさん:2006/05/06(土) 11:39:22
>>539
お前のレスが『ぱっと見て「ヘタだなぁ」と思う日本語』なので、

やはりこのスレは『ぱっと見て「ヘタだなぁ」と思う日本語』のスレです。

541 :デフォルトの名無しさん:2006/05/06(土) 11:47:10
いい加減他所でやってくれんかのう...。


542 :デフォルトの名無しさん:2006/05/06(土) 11:55:05
ほんとここは知ったかばかりだなぁ

543 :デフォルトの名無しさん:2006/05/06(土) 11:58:07
なら、知ったかじゃない知識とやらを見せてみろよ

544 :デフォルトの名無しさん:2006/05/06(土) 12:01:55
ここのレベル低すぎ

545 :デフォルトの名無しさん:2006/05/06(土) 12:04:01
なんだと?そんなことしか言えんお前の方がレベルが低いわ

546 :デフォルトの名無しさん:2006/05/06(土) 12:08:45
なんだとはなんだ。レベルが低いと思うのならスルーしろよ。
自分がレベル低いと自覚してるから反応しちゃうのかなwww

547 :デフォルトの名無しさん:2006/05/06(土) 12:08:51
自作自演(・A ・)イクナイ!

548 :デフォルトの名無しさん:2006/05/06(土) 12:11:44
なんだとはなんだとはなんだ!お前みたいな奴が無意味な糞レスを増やしてるんだろうね
マジuze-さっさと消えてね☆

549 :デフォルトの名無しさん:2006/05/06(土) 12:17:26
>>1-548
結局、
「ぱっと見て「ヘタだなぁ」と思うコード 」
なんてスレに書き込んでいる奴は
こういう奴等しかいない、という事で・・・


550 :デフォルトの名無しさん:2006/05/06(土) 12:23:01
とは言っても、ここの大半は自演自作です。

551 :デフォルトの名無しさん:2006/05/06(土) 12:34:28
このソフトのコード。
【新P2P】squirt part2【テスター募集】
http://tmp6.2ch.net/test/read.cgi/download/1146829932/

552 :デフォルトの名無しさん:2006/05/06(土) 12:50:17
これソース公開してんの?
バイナリしか見つからんかった。

553 :デフォルトの名無しさん:2006/05/06(土) 13:04:58
いい加減他所でやってくれんかのう...。

554 :デフォルトの名無しさん:2006/05/06(土) 13:06:37
switch文がえらい長いコード

555 :デフォルトの名無しさん:2006/05/06(土) 13:08:28
C#で作られてるから
ttp://www.aisto.com/roeder/dotnet/
のReflector for .NET使ったらソースが丸見え。
GetMessageType(string)のところに
switch (num1)
{
case 0:
return 1;

case 1:
return 2;

case 2:
return 3;

case 3:
return 4;

case 4:
return 5;

case 5:
return 6;

case 6:
return 7;

case 7:
return 8;
}
とかあるwww

556 :デフォルトの名無しさん:2006/05/06(土) 13:08:30
えらい長いswitch文を嫌ってメッセージループを分割するコード

557 :デフォルトの名無しさん:2006/05/06(土) 13:16:52
『ぱっと見て「ヘタだなぁ」と思う議論』のスレはここですか?

558 :デフォルトの名無しさん:2006/05/06(土) 13:57:37
どこがどう下手なのかを議論できれば有益だよね。

559 :デフォルトの名無しさん:2006/05/06(土) 14:12:24
条件分岐が多いコードは下手だと言えるだろう。

560 :デフォルトの名無しさん:2006/05/06(土) 14:13:41
>>555
return ++num1;

終了

561 :デフォルトの名無しさん:2006/05/06(土) 14:14:22
>>555
それ、なんか複雑な変換をかませようとした残骸なんじゃねーの?

562 :デフォルトの名無しさん:2006/05/06(土) 14:16:03
>>560 それ、ビミョーにヘタだな。


563 :デフォルトの名無しさん:2006/05/06(土) 14:16:15
トラックバック:http://tmp6.2ch.net/test/read.cgi/download/1146829932/

564 :デフォルトの名無しさん:2006/05/06(土) 14:19:58
>560は>555と全然違う件について

565 :デフォルトの名無しさん:2006/05/06(土) 14:20:26
>>560 numが9ならどうなるの?

566 :デフォルトの名無しさん:2006/05/06(土) 14:27:04
トラックバック:http://d.hatena.ne.jp/yaneurao/20060423

567 :デフォルトの名無しさん:2006/05/06(土) 14:27:49
>>555
C♯コンパイラが吐き出した結果だから、ソースがそのまま見えているわけではないだろ。

568 :デフォルトの名無しさん:2006/05/06(土) 14:31:49
こんなのもあった。
if (num1 < numArray1[0])
{
return 1;
}
if (num1 < numArray1[1])
{
return 2;
}
if (num1 < numArray1[2])
{
return 3;
}
if (num1 < numArray1[3])
{
return 4;
}
if (num1 < numArray1[4])
{
return 5;
}
if (num1 < numArray1[5])
{
return 6;
}
if (num1 < numArray1[6])
{
return 7;
}
return 8;

569 :デフォルトの名無しさん:2006/05/06(土) 14:49:09
>>568
wwwwwwwww

570 :デフォルトの名無しさん:2006/05/06(土) 14:52:08
>>565
必要ならifで別ければおkじゃね?

571 :デフォルトの名無しさん:2006/05/06(土) 15:11:21
もしC#コンパイラがループ展開してるとかだったらどうすんだ?

572 :デフォルトの名無しさん:2006/05/06(土) 15:16:48
こんなところじゃないのか?

>555
{
 if(num1<0 || num1>7) retrun;
 else {return ++num1;}
}

>568
{
 int i;
 for(i=0;i<=6;i++){
  if(num1 < numArray1[i]) {return ++i;}
 }
 return 8;
}

573 :デフォルトの名無しさん:2006/05/06(土) 15:18:50
やっぱ元ソースコードで判断しないとな。

574 :デフォルトの名無しさん:2006/05/06(土) 15:38:47
逆アセしたソースを晒されてもねぇ…
exeをReflectorで逆アセして元ソースと同じになっていると思っているんだろうか。

575 :デフォルトの名無しさん:2006/05/06(土) 15:58:11
コンパイラが最適化した名残にしか見えないよな。

576 :555:2006/05/06(土) 15:59:39
馬鹿丸出しでした。本当に申し訳ありませんでした。

577 :デフォルトの名無しさん:2006/05/06(土) 16:02:03
マクロが数字に変わっただけならともかく、最適化されてこれなら
元のソースコードワロス

578 :デフォルトの名無しさん:2006/05/06(土) 16:04:32
>>577
お前の脳味噌も最適化してもらえよ

579 :デフォルトの名無しさん:2006/05/06(土) 16:08:32
どっちにしてもC#の自動最適化ってしょぼいな。
>>555なんてswitch文はありえないだろ。

580 :デフォルトの名無しさん:2006/05/06(土) 16:13:11
元ソースコードとアセンブリを見比べなきゃ判断できない

元ソースがおかしい可能性もあるし
最適化がかかってない可能性もあるし
逆アセの段階で変なことになっている可能性もある

581 :デフォルトの名無しさん:2006/05/06(土) 16:14:27
元のソースも見ずにあーだこーだ言ってもしょうがないってマダわかんないのかコイツ

582 :デフォルトの名無しさん:2006/05/06(土) 16:18:19
ソース見なくても最適化がかかってるかどうかは分かるぞ

583 :デフォルトの名無しさん:2006/05/06(土) 16:19:23
その内、obfuscator通した.NET, Javaコードをリバースして
「何これテラワロス」とか抜かすお馬鹿さんが現れそう。

584 :568:2006/05/06(土) 16:49:22
馬鹿丸出しでした。かさねがさね申し訳ありませんでした。

585 :568:2006/05/06(土) 16:59:26
バーカ!!!


586 :デフォルトの名無しさん:2006/05/06(土) 17:23:14
ソース云々よりもreadmeを見たら作者のあれさ加減がわかるな。
「なんちゃってPOP3偽装」とか「暗号について」とかの部分。

587 :デフォルトの名無しさん:2006/05/06(土) 17:31:12
>>586
おいおい、ここはそのソースを云々するスレじゃないのかい?
話を作者叩きにスリ替えるなよな。

588 :586:2006/05/06(土) 17:33:35
馬鹿丸出しでした。かさねがさね申し訳ありませんでした。

589 :デフォルトの名無しさん:2006/05/06(土) 17:37:53
うむ、素直で宜しい。これに懲りたらもうするんじゃないぞ。

590 :デフォルトの名無しさん:2006/05/06(土) 17:41:50
>>587なんで過剰反応してんの?作者降臨ですか?www

591 :568:2006/05/06(土) 17:42:56
>>589
調子乗ってんじゃねーよ!バーカ!!!!!

592 :デフォルトの名無しさん:2006/05/06(土) 17:43:35
トラックバックで作者来てるかもなwwww

593 :デフォルトの名無しさん:2006/05/06(土) 17:47:23
>>590
脳味噌カラッポか?
どうみても正論だろうが。

594 :デフォルトの名無しさん:2006/05/06(土) 17:47:32
そういう流れはもうよそでやってくれんかのう。

595 :デフォルトの名無しさん:2006/05/06(土) 17:50:57
ちょwwwこれ、まじ作者来てるwwwww

596 :デフォルトの名無しさん:2006/05/06(土) 17:53:11
作者必死だな(笑)

597 :デフォルトの名無しさん:2006/05/06(土) 17:57:25

作者が顔を真っ赤にしてこのスレを見ているようです

.

598 :デフォルトの名無しさん:2006/05/06(土) 18:00:12
このスレってこんなノリだったっけ?
あの板から厨が流入したか、それとも元々?

599 :デフォルトの名無しさん:2006/05/06(土) 18:02:27
リバースで出た555や568をヘタだと思うのは青春の証し

600 :デフォルトの名無しさん:2006/05/06(土) 18:05:17
>>595-597
はいはい、もうDL板に帰れ厨房が


601 :デフォルトの名無しさん:2006/05/06(土) 18:05:45
wwwwwwwwwwwwwwwwwwwwwww




















バーカ

602 :デフォルトの名無しさん:2006/05/06(土) 18:07:32
例の知ったか君が粘着しているに一票。

603 :デフォルトの名無しさん:2006/05/06(土) 18:09:31
向こうのスレからID:ShHjijxN0が1人流入してきて必死になってんだろ。

おい、ID:ShHjijxN0、何でニューラルネットワークが出てくるんだよ。
馬鹿すぎだろ。

353 名前:[名無し]さん(bin+cue).rar[] 投稿日:2006/05/06(土) 18:02:22 ID:ShHjijxN0
protectとかつまらん機能つけるから悪いんだよな
どうせなら、他人のPCのキャッシュをprotectをできるようにすればいい
てか、そうなると、結局削除も保守もできるようになって、結局何もかわらないと思うけどねw
キャッシュやノードに対する評価価値が単純な条件式だけでなりたってるなんてww
だから、-6000だのわけのわからない状況になるんだよww
単純な四則演算だけで相互ネットワークを処理できると思ってるのかねww
てか、学歴っつうか、数学についてもうすこし勉強しろよw

if(ノード.アップ状況==アップしてない)
{
  ノード.信頼度-=100;
}

とかwwほんとしょぼすぎなんだよwww
ニューラルネットワークについてもう少し勉強しろチンカス野郎

604 :デフォルトの名無しさん:2006/05/06(土) 18:25:03
>>444
亀レスですが非常に勉強になりました。ありがとうございます。
cvs等の管理ツールの導入で、一つのソースを複数の人間が弄ることも可能になる、
と、それはそれで新たな問題が発生する、という展開が興味深いですね…
とても勉強になります。


605 :デフォルトの名無しさん:2006/05/06(土) 18:26:40
>>555なんかを叩いてる時点でコンパイラの最適化すら知らん奴ってことが確定なわけで
叩く方が恥ずかしいことに早く気付いたほうがいい

606 :デフォルトの名無しさん:2006/05/06(土) 18:53:44
スレ違いのことを書き込んでる人と一緒で
恥ずかしいとは思ってないと思うよw

607 :デフォルトの名無しさん:2006/05/06(土) 18:56:39
 
'w'が少なくなったな。
疲れたのか?
 

608 :デフォルトの名無しさん:2006/05/06(土) 19:22:47
DirectInputで見つけてしまったんだが…

SetProperty(REFGUID rguidProp, DIPROPHEADER *pdiph)

というメソッドの第二引数に渡す構造体がコレ↓へのポインタ

struct DIPROPDWORD // え…?名前違う?
{
  struct DIPROPHEADER // ???
  {
    DWORD dwSize; // DIPROPDWORDのサイズを入れる
    DWORD dwHeaderSize; //DIPROPHEADERのサイズを入れる…
    DWORD dwObj;
    DWORD dwHow;
  } diph;
  DWORD dwData; //本当に渡したいデータはここに入る
}

さすがM$


609 :デフォルトの名無しさん:2006/05/06(土) 19:30:24
で、(DWORD *)で受けると・・
わしも明け方にはよく使う手じゃ。

610 :デフォルトの名無しさん:2006/05/06(土) 19:35:58
>>608
MSDNを見てみたらDIPROPナンタラという構造体がいくつもあり、
そのDIPROPナンタラは全て先頭にDIPROPHEADER型のdiphというメンバを持っている。
メンバのdiphを渡すことでDIPROPナンタラならなんでも渡せるようにと言うことらしい。

611 :デフォルトの名無しさん:2006/05/06(土) 19:46:11
>>608
残念ながら、お前の思慮が足りないということで・・・

お引き取りください

612 :デフォルトの名無しさん:2006/05/06(土) 19:53:44
例のp2pソフトはみんな叩くから開発中止になったらしいなw

613 :デフォルトの名無しさん:2006/05/06(土) 20:00:35
http://tmp6.2ch.net/test/read.cgi/download/1146829932/378

614 :デフォルトの名無しさん:2006/05/06(土) 20:07:54
>608-611
可変長や不連続な次データの在り処を示すやりかたに似てるが・・
ヘタなコードと断言は出来ないが、褒められたコードでもないと思う。

>612
俺の記憶が正しければ、叩いていたのは一人だけだ。

615 :デフォルトの名無しさん:2006/05/06(土) 21:05:08
>>614
アレが誉められないコードだとして、自分ならどういうコードにするの?

616 :デフォルトの名無しさん:2006/05/06(土) 21:15:38
ここは上手いコードを書くスレでは無いから教えられない。

617 :デフォルトの名無しさん:2006/05/06(土) 21:32:35
どんなコード書いても叩かれるから

618 :デフォルトの名無しさん:2006/05/06(土) 21:56:43
ここはぱっと見て「ヘタだなぁ」と思うコードを晒すスレだ。
よくよく考えたらヘタでもないコードも、
ぱっと見て「ヘタだなぁ」と思えばその要件を満たしていると言えるのではないか?

619 :デフォルトの名無しさん:2006/05/06(土) 22:15:16
>>613
ワロスww

620 :デフォルトの名無しさん:2006/05/06(土) 22:24:36
378 名前: ◆CKhLky1OX2 [sage] 投稿日:2006/05/06(土) 19:10:48 ID:YOnguUS10
作者です。
開発を中止します。モチベーションを維持できなくなりました。
1 ◆f/MpZJf1/I みたいな基地外に何を言われても何とも思わないのですが、
それ以外の方の発言で結構利いたのがあって。

やはり多くの人にいわれた通りまだまだ未熟だったようです。
出直してきます。

テストに参加してくださった方や、スレたてさんや>>12さん
本当にありがとうございました。




はいはいワロスワロスw

621 :デフォルトの名無しさん:2006/05/06(土) 22:43:46
'w'使いが一斉に出現しては、しばらく居なくなる件について。

622 :デフォルトの名無しさん:2006/05/06(土) 23:06:02
ずっと気にしてるのねw

623 :デフォルトの名無しさん:2006/05/06(土) 23:14:09
自演ってバレバレだな。この馬鹿。

624 :デフォルトの名無しさん:2006/05/06(土) 23:52:31
バーカ!!!!!!!!!!















wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

625 :デフォルトの名無しさん:2006/05/07(日) 00:21:40
脳味噌が退化してるな。同じレスようなレスしか出来ないようだこの馬鹿は。

626 :デフォルトの名無しさん:2006/05/07(日) 00:38:34
STLのヘッダのインデントって下手っつーか見辛いんだけど、
向こうじゃあんな感じのがデフォなの?

627 :デフォルトの名無しさん:2006/05/07(日) 09:26:29
人って自分の価値観が標準だと思いたがるもんだよね。

628 :デフォルトの名無しさん:2006/05/07(日) 11:44:16
>604
たとえあなた一人しかプログラミングしてない場合でも
ソース管理ツールは使った方がいい。

629 :デフォルトの名無しさん:2006/05/07(日) 15:52:41
それも今日で終わりか。

630 :デフォルトの名無しさん:2006/05/07(日) 15:56:44
if(a){
b = a
}else{
b = !a
}

昔、俺が書いてしまった。。
鬱病気味で注意力が落ちて痛んだよ(((涙


631 :デフォルトの名無しさん:2006/05/07(日) 15:57:31
>>608 >>610 >>614
X11 Toolkit も使ってる手法。
C++ だと、DIPROPHEADER または
その派生クラスへのポインタを渡すようなもん。

632 :デフォルトの名無しさん:2006/05/07(日) 17:29:46
>>626
STLにもいろいろベンダがあったと思うが、どこのSTL?

633 :デフォルトの名無しさん:2006/05/07(日) 18:18:51
マシン語になったときに無駄多し!のコード


634 :デフォルトの名無しさん:2006/05/07(日) 20:51:13
ヒント:630はJava

635 :デフォルトの名無しさん:2006/05/07(日) 20:56:21
>630
日本人ならちゃんと日本語で話せ。
"aが正ならbはaだが、aが誤ならbはびっくり。"

636 :デフォルトの名無しさん:2006/05/07(日) 21:01:20
真偽と正誤は違います。

637 :デフォルトの名無しさん:2006/05/07(日) 23:45:23
>>635
bは必ず真だから、そもそも代入する必要がないということなんじゃないの?

638 :デフォルトの名無しさん:2006/05/07(日) 23:49:28
>>637
代入する必要があるかないかに関してはコンテキストによるだろ。

639 :デフォルトの名無しさん:2006/05/07(日) 23:55:41
>>630
なにが言いたいのかはっきり書けよ!


640 :637:2006/05/07(日) 23:59:34
>>638
そうなんかな?オイラJava使ったことないんで良く分かんないが…。

しかし、613 にあるC#製のP2Pソフト、Reflectorでコード丸見えで解析されて可哀想だな…。
正味な話、テスト全部通ったんなら内部のコードが少々ヘタレでもまぁいいじゃんと思う。
まぁメンテする人間にとっちゃ、たまったもんじゃないんだろうけど。

641 :デフォルトの名無しさん:2006/05/08(月) 00:10:31
>>640
いや、Javaとかそんなん関係ないって。
例えば件のコードがまるまる別の if 文の中にあったらどうなる?

642 :640:2006/05/08(月) 00:32:45
>>641
その場合でも、そのif文の中に、b = true; の一文を記述するだけで
良いような気が…。間違ってる?

643 :デフォルトの名無しさん:2006/05/08(月) 00:34:43
>>642
それであってるよ。で、「b = true;」は代入なんじゃないのか?

644 :642:2006/05/08(月) 00:42:57
>>643
ご指摘スマソ、寝ぼけてた…orz。
× 637 bは必ず真だから、そもそも代入する必要がないということなんじゃないの?
○ bにtrueを代入するだけでいいということなんじゃないの?

645 :デフォルトの名無しさん:2006/05/08(月) 01:32:45
10も20もレス重ねるほど分かりにくい例だとも思わなかったが。
ヘタだなぁと思うコードじゃなくて、寝ぼけてるなぁと思うコードだ。

646 :デフォルトの名無しさん:2006/05/08(月) 01:39:08
bool a,b;
だったのか

647 :デフォルトの名無しさん:2006/05/08(月) 01:47:29
実は a はメソッド(or関数)で、呼び出しに () を省略可能な言語だと仮定してみる。
ため息の出そうな言語仕様だな。

648 :デフォルトの名無しさん:2006/05/08(月) 01:57:37
#!/bin/sh
# >>647
#shがまさにそういう仕様だよ。

# こんな風に関数を定義して
func()
{
/bin/rm -f $1
}

if [ "$1" = "core" ]
then
# こんな風に使えてしまう
func $1
fi

#要はコマンド呼び出しなので、上記の'['の代わりに使うこともできる
if func $1
then
echo "Killed."
fi

649 :デフォルトの名無しさん:2006/05/08(月) 02:10:43
>648
スクリプト系は仕方ないのかな。
Perl もそんな仕様だった。
最初は &sub_name みたいな呼び出し形式だったのに
後に & なしでも OK になってしまった。
Ruby もこのスタイル。
メリットに乏しい上に変数と区別付かないデメリットが大きい。

650 :デフォルトの名無しさん:2006/05/08(月) 10:20:10
Pascal系やVB系でも、引数のないサブルーチンはカッコを省略できるね。
あと、逆に、Perlでリストとスカラーの区別が付くけど、Cではつかないとか、
Rubyでは、変数のスコープの区別がつくけどCではつかないとか。



651 :デフォルトの名無しさん:2006/05/08(月) 13:07:02
if (a < b) for (int i = 0;i < c;i ++) if (d < e) for (int i = 0;i < f;i ++) else ...

652 :デフォルトの名無しさん:2006/05/08(月) 13:28:12
VBの場合、Subは括弧不要、Functionは括弧要。ただしCallを使った場合にはどちらも括弧要。

Sub A(ByVal i as Integer)
End Sub

Function B(ByVal i as Integer) As Boolean
End Function

Sub C
  Dim i as Integer
  i = 0
  A i
  B(i)
  Call A(i)
End Sub

CallのないSubで括弧をつけると、式の優先順位を示す括弧だと認識される。
VB.NETでは改善されたようだが。つーか"Call"いらん。 

653 :デフォルトの名無しさん:2006/05/08(月) 13:38:15
C++ の方が簡単に見える。何故だろう。

654 :デフォルトの名無しさん:2006/05/08(月) 14:11:45
VB6は組む分には楽だけど、後から見たら、読み辛くてさっぱり分からん。
C++でコーディング規約に則った記述の方が、読み易いし保守が楽。

655 :デフォルトの名無しさん:2006/05/08(月) 14:24:22
うん Pascalに似せたんだろうけど、
配列定義していないのに Dim って 小さいとか暗いとかでも意味通らないし
var を採用すりゃいいのに・・・・

とか、思っちゃうと、全体がそういう「もうそれでやっちゃったから」の思想で覆われてるように見えてきちゃうよな

656 :デフォルトの名無しさん:2006/05/08(月) 14:54:59
>>655
いやまて、流れとしては Fortran → Basic → Visual Basic だし
Dim は Dimension の略だ。

657 :デフォルトの名無しさん:2006/05/08(月) 15:03:27
>>656
>配列定義していないのに Dim って 小さいとか暗いとかでも意味通らないし
からDimentionだと意味が通らないんじゃないってことじゃね?

658 :デフォルトの名無しさん:2006/05/08(月) 15:09:17
Pascal 由来ではない、ということを言いたかったんじゃないかな。

659 :デフォルトの名無しさん:2006/05/08(月) 15:13:26
配列定義用のステートメントであるDIMを配列じゃない変数にまで適用したのが失敗だな。
Callがあるのは一部Basicにあった外部モジュール呼び出しステートメントの流用だし、
ifステートメントのthenキーワードの場所による意味の違いもあったりで、もうなんだかね。

と書いてから、ここはぱっと見て「ヘタだなぁ」と思う言語スレじゃないことに気づいた漏れガイル。

660 :デフォルトの名無しさん:2006/05/08(月) 15:15:02
うは、DimentionじゃなくてDimensionだ

661 :656:2006/05/08(月) 15:37:40
>>657
あ、「配列定義してないのに」ってそういう事か。スマヌ。
確かに Dim は変だ。

662 :デフォルトの名無しさん:2006/05/08(月) 15:53:43
>>649
> メリットに乏しい上に変数と区別付かないデメリットが大きい。
C#のプロパティなんか、わざわざ、メソッドのコールを
変数のアクセスに見せかけてるよ。



663 :デフォルトの名無しさん:2006/05/08(月) 23:40:13
>メリットに乏しい上に変数と区別付かないデメリットが大きい。

フィールドアクセスか、メドッドコールかの
区別がつかないというか、区別をつけないでいいことが大きいメリットなんだが。

てか区別つかないことによるデメリットってなに?

664 :デフォルトの名無しさん:2006/05/08(月) 23:43:27
C# みたいに IDE にクラスブラウザみたいなものがあれば良いけど、
IDEのサポートも無くドキュメントも貧弱になりがちなスクリプト言語のコードで
それやられると「この変数ナニよ?」ってことに・・・

Perl野郎は引継ぎもちゃんとしないしさ(うちだけか、これは)。

665 :デフォルトの名無しさん:2006/05/08(月) 23:50:35
.NETついでに、プロパティに括弧がついているとヘタと思うね。

If IsPostBack() Then

みたいな。

666 :デフォルトの名無しさん:2006/05/09(火) 00:13:59
> デメリットってなに?
状態の変化を伴うメソッド呼び出しが()つけないことで
変数への参照のように見えて、そのせいで泣いたりとか。

とは言えC#のように
getter/setterみたいな頻出パターンについてのみ
例外的に構文糖を用意するってのはアリだと思う。

667 :デフォルトの名無しさん:2006/05/09(火) 00:23:00
俺Ruby厨だがメソッドか変数かなんて迷わないなー

Rubyの場合、レシーバ無しで代入してれば全て変数
レシーバ付いてたら全てメソッド

強いて言えば引数無しのメソッド呼び出しと区別付き辛いが
同じメソッド内見て代入してれば変数だし
そうでなければメソッド呼び出しだろう

ま、1メソッドが何十画面にも及ぶコードなら話は別だがなw

668 :デフォルトの名無しさん:2006/05/09(火) 03:15:03
メドッドコール

669 :デフォルトの名無しさん:2006/05/09(火) 07:41:03
リードオンリーな変数(const付いたような)と、引数無しの関数・メソッドは区別する必要があるのだろうか?

670 :デフォルトの名無しさん:2006/05/09(火) 09:16:10
>>669
何を言いたいのかわからんぞ。引数の有無は大きな違いだろうが。

671 :デフォルトの名無しさん:2006/05/09(火) 11:49:22
>>669
区別したくないから「プロパティ」なんてものがあるんじゃね?
個人的には、「プロパティ」の存在そのものが要らんと思ってるが。

>>670
>引数の有無は大きな違い
そんな話はしていないようだが。

672 :デフォルトの名無しさん:2006/05/09(火) 12:12:44
プロパティはどっちかいうとIDEとの連携を楽にする都合の方が大きいかもね。
get/setメソッド方式だと 実行時型情報を持つメソッドという指令が必要になり
複数の引数持つメソッドにその指令をかけたら、どうするのかとか考えないといけないから

単純な代入と引用に見えるというのを導入したのだと思える

673 :デフォルトの名無しさん:2006/05/09(火) 12:39:17
まあ、変数へのアクセスかサブルーチンのコールかへの
区別がつくことはそんなに重要じゃないってことだな。


674 :デフォルトの名無しさん:2006/05/09(火) 21:28:41
= で値を入れたとき、それがsetterで思ってたのと違う結果になってたら困らない?
そういうのはドキュメントに残してもらう、ってことかな

675 :デフォルトの名無しさん:2006/05/09(火) 21:39:50
例えばどういう事?

範囲型を採用してる言語なら 範囲外はハジケルけど
そうじゃない言語だと範囲外を代入されたら困るだろうという事?

でもget/set時に範囲外は例外を出すのが普通だと思うのだが?

676 :デフォルトの名無しさん:2006/05/09(火) 22:32:24
「違う結果」っつうんだから「値が加工される」とかじゃね?
文字列のプロパティにマルチバイト突っ込んだらワイド文字列になったりとか。

677 :デフォルトの名無しさん:2006/05/09(火) 22:35:14
そんな仕様なら、それがsetterであろうと、プロパティであろうと、うざいことに代わりはない。


678 :デフォルトの名無しさん:2006/05/09(火) 23:29:58
あとは、setter名のメンバ以外の明らかに変な副作用をもたらすものとかか?

>>677
まあそうだわな。

679 :デフォルトの名無しさん:2006/05/10(水) 12:49:58
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.6.6.html
超有名な診断室を読んでたらこんな記述が。。。

> reallcのとき、第1引数のポインタは、必ず直前で別の変数oldに
> 代入してから使っています。これは、reallocの引数と、reallocの
> 戻り値を入れるポインタが同一だと、何かが破壊されてしまうと思い
> こんでいるようです。

批判されてるソースでもreallocの戻り値をチェックしてないの
で、oldに入れてても無駄になってるけど。。。


680 :デフォルトの名無しさん:2006/05/10(水) 15:32:59
>>679
そういう勘違いとは違うし

681 :デフォルトの名無しさん:2006/05/10(水) 18:53:10
>679
引数NULL監視でおk

682 :デフォルトの名無しさん:2006/05/10(水) 20:15:36
>>681
なにそれ?

683 :デフォルトの名無しさん:2006/05/10(水) 21:27:30
>>679
こりゃやべーな。

目次ページに
> 全国的デバッグ作業に御協力下さるよう、お願い致します。
って書いてあるから、知らせてあげるのがいいんだろうね。

684 :デフォルトの名無しさん:2006/05/10(水) 22:41:32
なんじゃこりゃよ

additional &= ( ( ( brand >>= 6 ) &= 0x3f ) ? 0x3f : 0x0 );

685 :デフォルトの名無しさん:2006/05/11(木) 13:19:56
>>684
それだけじゃヘタかどうかわからんよ。

686 :デフォルトの名無しさん:2006/05/11(木) 13:28:29
>>684
&=0x3fはコンパイル通るの?

687 :デフォルトの名無しさん:2006/05/11(木) 14:48:40
>>685
難解なのはヘタと同じだろう。


688 :デフォルトの名無しさん:2006/05/11(木) 15:16:45
違うだろ。
というかそれほど難解でもないだろ。
強いて言えば、brand>>=6だけは前の行あたりでやっといた方がいいとは思うが。

バカ基準でうまいへたを決められたらカワイソス

689 :デフォルトの名無しさん:2006/05/11(木) 15:42:20
Cなら未定義じゃね?

690 :デフォルトの名無しさん:2006/05/11(木) 16:14:07
未定義と言うかCでは文法エラーだろう。
環境依存の糞コード。

691 :デフォルトの名無しさん:2006/05/11(木) 22:25:50
C++ なら、いちおう規格の範囲内。

692 :デフォルトの名無しさん:2006/05/11(木) 22:59:09
ttp://www.pj-blog.net/blog/index.php/xdaisuke/1144424578/
ギャグか?

693 :デフォルトの名無しさん:2006/05/11(木) 23:28:13
>>692
元ネタと逆にやってるから、反論っていうか、皮肉かね?

694 :デフォルトの名無しさん:2006/05/12(金) 01:26:07
PHPは世間知らずの学生ベンチャーのアルバイト言語
Perlはゲージツカ言語

だなぁ。

695 :デフォルトの名無しさん:2006/05/13(土) 11:25:55
http://d.hatena.ne.jp/pmoky/20051007

スーパープログラマーなろうと希望に胸を膨らませて、
大学院を中退したpmokyだが、やねう企画の実態は…

http://d.hatena.ne.jp/pmoky/20060510#p1
http://d.hatena.ne.jp/pmoky/20060223

ブラック企業のタコ部屋だった。

やねうらおが詐欺ソフトでヤクザが炎上中と内部告発
http://pc8.2ch.net/test/read.cgi/prog/1147372387/


696 :デフォルトの名無しさん:2006/05/13(土) 11:59:22
宣伝厨乙。

697 :デフォルトの名無しさん:2006/05/13(土) 18:30:59
「商品コード・商品名・受注数」の組み合わせを配列で管理したいのを
二元配列で管理してるVB.NETのソースを見た。
もちろん指数は0,1,2みたいに数字を直接コーディング。

いやまぁ確かにエラーとかならずに動いてるんですけどね。

698 :デフォルトの名無しさん:2006/05/13(土) 18:50:58
>>697
構造体にするべきところを二次元配列でって意味?

699 :デフォルトの名無しさん:2006/05/14(日) 16:59:51
あれだろ。
勝手に構造体を定義しちゃダメってな規約でもあるんだろ。

まさに今、俺も似たような事をやってるよ。
さすがに添え字は static final int で名前をつけてるけどな。

700 :デフォルトの名無しさん:2006/05/14(日) 17:24:12
部署で使ってるライブラリの、システム日付を取得するやつが、

**_getsysdate(short* d);

日付が、こう帰ってる。
d[0] 年
d[1] 月
d[2] 日

なんかビミョーな感じ。



701 :デフォルトの名無しさん:2006/05/14(日) 17:27:29
>>700
それだけだと状況によるっしょ。だからビミョーなのかもしれんけど。

702 :デフォルトの名無しさん:2006/05/14(日) 17:43:25
フツーの感覚だと日付は構造体じゃない?

703 :デフォルトの名無しさん:2006/05/14(日) 17:59:42
Delphi標準なんて浮動小数点だぜ(TDateTime)

704 :デフォルトの名無しさん:2006/05/14(日) 18:19:06
>>703まぁ、頑張れ

705 :デフォルトの名無しさん:2006/05/14(日) 18:23:30
日時の内部表現がスカラーなのは普通じゃん。

706 :デフォルトの名無しさん:2006/05/14(日) 19:52:08
>>700
あと、このライブラリの文字列操作の関数は、一文字目の位置が0じゃなくて
1になってたりするし。

707 :デフォルトの名無しさん:2006/05/15(月) 18:13:15
>>700
悪かった。 次から
d[0] 年
d[1] 月*32+ 日
と2ワードで済むように修正しとくよ ( ^ ^ )

708 :デフォルトの名無しさん:2006/05/15(月) 18:18:20
いや
d[0] 年
d[1] 月*100+ 日
の方が使い易い? まあ、どっちかにしとくよ。 
どっちにしても同じ名前で動くようにしておくから 楽しみにしててね

709 :デフォルトの名無しさん:2006/05/15(月) 20:13:51
月はゼロから始まるんだよな

710 :デフォルトの名無しさん:2006/05/15(月) 21:07:08
なんで struct tm つかわないんだろ?

711 :デフォルトの名無しさん:2006/05/15(月) 21:19:12
>>710
知らないんじゃないの?

712 :デフォルトの名無しさん:2006/05/16(火) 10:41:21
ISO C の時刻関係一切サポートされてないシステムってのもあるんだよ。
つか、実際あった。

713 :デフォルトの名無しさん:2006/05/16(火) 10:57:12
>>712
それならそれで、struct tmに準拠しないか?
つーか、実際BTRONではtime.h系を粗方実装する羽目になった。

714 :デフォルトの名無しさん:2006/05/16(火) 11:34:05
getsysdate(long int * d);
32bitで 16進表示した時に YYYYMMDD と返す事と決定しました

715 :712:2006/05/16(火) 11:38:35
>>713
まあ、俺も結局足りないの全部実装したんだけどね。
そんときは他機種からの移植だったからそうしたんだけど
新規だったら互換性なしで作り込んじゃうのもアリかな、と。

716 :デフォルトの名無しさん:2006/05/16(火) 11:53:50
>>714
それなんてBCD?

717 :デフォルトの名無しさん:2006/05/17(水) 20:25:09
VC++付属のSTLのコード読んでるんだけどゲロ吐きそう(´Д`l|l)

718 :デフォルトの名無しさん:2006/05/19(金) 07:35:18
臭ッ

719 :デフォルトの名無しさん:2006/05/19(金) 17:48:35
オリジナルコードを見たことがないからなんとも言えんなぁ……

720 :デフォルトの名無しさん:2006/05/22(月) 14:11:31
>>700
32767年問題が起きるな。

721 :デフォルトの名無しさん:2006/05/22(月) 14:49:44
>>720
それは問題だな。3万年間潜在的なバグが残るってことか。

722 :デフォルトの名無しさん:2006/05/22(月) 15:14:31
32768年問題じゃね?

723 :デフォルトの名無しさん:2006/05/22(月) 15:18:43
>>722
そうか。そうだな。32767年にみんな大騒ぎになって32768年に全システムがダウン
及び安いシステムを使っている後進国の弾道ミサイルが発射される。


724 :デフォルトの名無しさん:2006/05/22(月) 16:01:54
年は double にしろって事ですね。
本当にありがとうございました。

725 :デフォルトの名無しさん:2006/05/22(月) 16:04:06
やあ。Live long and prosper.

726 :デフォルトの名無しさん:2006/05/22(月) 16:22:37
gmtime

727 :デフォルトの名無しさん:2006/05/22(月) 18:45:31
>>724
年は malloc() した char * へのポインタで文字列で表現するのが良い。


728 :デフォルトの名無しさん:2006/05/22(月) 23:10:27
>>727
それは何byteの文字列ですか?w

729 :デフォルトの名無しさん:2006/05/22(月) 23:15:54
Int64で持てば、地球が生存する間は大丈夫だろ。

730 :デフォルトの名無しさん:2006/05/23(火) 00:26:32
つ[RFC2550]

731 :デフォルトの名無しさん:2006/05/23(火) 16:30:29
>>728
可変長


732 :デフォルトの名無しさん:2006/05/23(火) 16:32:19
>>729
それだと9223372036854775808年問題になる。



733 :デフォルトの名無しさん:2006/05/23(火) 18:46:03
>>732
いやwだからw地球が生存する間は大丈夫だろ?ってば

734 :デフォルトの名無しさん:2006/05/23(火) 18:48:12
2007-2100年問題でなければ大丈夫

735 :デフォルトの名無しさん:2006/05/23(火) 18:55:17
>>733
人類があとどれぐらい生き延びるかは分からない。

あと2日で彗星の破片が降って来て終わりかも知れないが。


736 :デフォルトの名無しさん:2006/05/23(火) 19:03:51
自転周期が乱れて1日が32768時間になったらどうしよう?

737 :デフォルトの名無しさん:2006/05/23(火) 19:37:45
そうしたら生きる時間が長くなるかもしれないな

738 :デフォルトの名無しさん:2006/05/23(火) 20:08:33
みんな寝られなくなる。
そして夜は寝過ぎになる。

みんな体調崩して人類滅亡。


739 :デフォルトの名無しさん:2006/05/23(火) 20:31:40
利息つきまくりで(゚д゚)ウマーor( ゚Д゚)マズー

740 :デフォルトの名無しさん:2006/05/23(火) 22:52:01
>>733
おまえ、そういう安易な考えが2000年問題をうんだんだろ。まだ懲りてないのか

741 :デフォルトの名無しさん:2006/05/23(火) 23:15:04
そうそう。性に男女しかないという偏狭な固定観念を持っているようでは
これからのシステム設計は任せられない。


742 :デフォルトの名無しさん:2006/05/23(火) 23:28:32
性別が2件固定だと思ってるバカなシステムあるからな。

743 :デフォルトの名無しさん:2006/05/24(水) 02:58:52
>>741
な、なんだってー。
確かに異星人で中性種ってのもあるかもしれんな。

744 :デフォルトの名無しさん:2006/05/24(水) 03:07:12
トップビットが立ってたら男でいいよもう面倒くせぇ

745 :デフォルトの名無しさん:2006/05/24(水) 03:21:26
>>744
立たなくなったら男じゃないってことか?

746 :デフォルトの名無しさん:2006/05/24(水) 03:22:18
女でも立つところあるだろ!馬鹿にすんなあ!

747 :デフォルトの名無しさん:2006/05/24(水) 05:12:13
ちち
くり

748 :デフォルトの名無しさん:2006/05/24(水) 07:56:37
性別は2個あたりまえだろ

749 :デフォルトの名無しさん:2006/05/24(水) 08:03:47
TS/TGの流行っている昨今、これからは元男・元女という情報も必要だな

750 :デフォルトの名無しさん:2006/05/24(水) 08:51:04
ぱっと見て「マ板化した」と思うスレ

751 :デフォルトの名無しさん:2006/05/24(水) 08:54:10
「男」「女」「内緒」かもしらん。

752 :デフォルトの名無しさん:2006/05/24(水) 09:00:49
中国軍によるチベット侵略の記録映像
http://www.youtube.com/watch?v=v3TqvUZSPi8

チベット人を虐待する中国人(テラコワスwww
こんな国がオリンピックなんてありえないだろw


クリックしまくってアクセスランキングで上位に来させようぜ!
Youtubeは世界中の人が見てます。


753 :デフォルトの名無しさん:2006/05/24(水) 11:25:07
ぱっと見て「マルチだな」と思う書き込み

754 :デフォルトの名無しさん:2006/05/24(水) 13:13:44
>>748
いや、性別の項目の状態を表すには2つだけでは足りない。
「不明」も必要。もっと厳密に表したい場合は可変長の
文字列の入力も受け付けられるようにしておかないと駄目。


755 :デフォルトの名無しさん:2006/05/24(水) 13:21:14
おまいらスレ違い

756 :デフォルトの名無しさん:2006/05/24(水) 13:51:30
いや、>>754 はぱっと見てヘタな設計だと解るのでスレ違いではない。

757 :デフォルトの名無しさん:2006/05/24(水) 13:59:29
でもここは設計じゃなくてコードでしょ?

無理矢理コードの話にすると、性別の項目はif〜else〜じゃなくて、switchでやれってのが結論でしょうか。

758 :デフォルトの名無しさん:2006/05/24(水) 14:10:55
いいえ

759 :デフォルトの名無しさん:2006/05/24(水) 16:56:27
性別はバイトでフラグ

760 :デフォルトの名無しさん:2006/05/24(水) 17:01:06
そういえば明日で世界滅亡だったな。


761 :デフォルトの名無しさん:2006/05/24(水) 17:08:58
>>760
あ。それ忘れてた。郵便局まだ開いてるかな

762 :デフォルトの名無しさん:2006/05/24(水) 17:44:47
そりゃ困る。明日発売のゲームを心待ちにしてるのに。

763 :デフォルトの名無しさん:2006/05/24(水) 18:35:41
>>762
それなんてエロゲ?

764 :デフォルトの名無しさん:2006/05/24(水) 18:45:34
エロゲじゃねえよ変態

765 :デフォルトの名無しさん:2006/05/24(水) 20:09:27
そうだよな.たいていは金曜発売だし

766 :デフォルトの名無しさん:2006/05/24(水) 20:11:15
詳しいんだな

767 :762:2006/05/25(木) 02:10:31
>>763
惜しい。EンターBレインのギャルゲ。

768 :デフォルトの名無しさん:2006/05/25(木) 03:43:41
>>767
お前がエロゲしてることみんなにばらしておいた

769 :デフォルトの名無しさん:2006/05/25(木) 08:42:05
けどみんな既に知っていたことが誤算だった

770 :デフォルトの名無しさん:2006/05/25(木) 11:19:11
>>736
H:M:SのHを2バイト取ってあるところが、ぱっと見て「ぺタだなぁ」と思うコード。


771 :デフォルトの名無しさん:2006/05/25(木) 13:56:31
エロゲとかギャルゲってなんですか?

772 :デフォルトの名無しさん:2006/05/25(木) 16:16:01
今は GMT でだいたい朝の7時。
イギリスとかフランスの辺りでは大騒ぎになってそうだな。


773 :デフォルトの名無しさん:2006/05/25(木) 16:40:23
へえ〜

774 :デフォルトの名無しさん:2006/05/25(木) 17:03:47
GMTよりUTCと呼びましょう

775 :デフォルトの名無しさん:2006/05/27(土) 12:57:46
ドウ違うの?

776 :宰相ググレカス:2006/05/27(土) 13:36:37
>>775

777 :デフォルトの名無しさん:2006/05/28(日) 13:42:32
>>771
カマトトぶんな。知ってるくせに。

778 :デフォルトの名無しさん:2006/05/28(日) 14:04:48
>>771
ググレカス

779 :デフォルトの名無しさん:2006/05/28(日) 17:02:24
      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ ,  /,   ,\  Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′  <仲良くなってくれ
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    >┻━┻'r‐'´
      ヽ_         |
         ヽ _ _ 」    

  ググレカス [ Gugurecus ]
  ( 2006 〜 没年不明 )


780 :デフォルトの名無しさん:2006/05/28(日) 17:09:08
      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ ,  /,   ,\  Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    >┻━┻'r‐'´
      ヽ_         |
         ヽ _ _ 」

  ググレカス [ Gugurecus ]
AC1頃〜没年不明
ローマ帝国宰相 アプレカスの乱の中、
「キャピ リンキック デ ググレ」(無知こそが最大の敵である) という言葉を残した。

781 :デフォルトの名無しさん:2006/05/29(月) 10:51:53
ネタにマジレスだけど生年AC1頃でローマ帝国宰相ねえ…歴史知らないのまるわかりで恥かくよ。
ちょうどアウグストゥスがプリンケプスとして共和政から帝政に移行しようとしてた頃。
帝政って言っても中華皇帝とか今イメージする皇帝とは全然違うしさ。

782 :デフォルトの名無しさん:2006/05/29(月) 12:01:17
はいはい,よくご存知ですね

783 :デフォルトの名無しさん:2006/05/29(月) 13:40:33
>>781
ネタにマジレスだけど、乗りというものを知らないと恥かくよ。
ローマ帝国の年代がどうだとかこうだとか、そういう問題じゃないんだから。

784 :デフォルトの名無しさん:2006/05/29(月) 13:50:18
>>781-783
ぱっと見て「ヘタだなぁ」と思うつっこみ

785 :デフォルトの名無しさん:2006/05/29(月) 13:57:34
ネタにマジレスだけど新スク水ねえ…歴史知らないのまるわかりで恥かくよ。
ちょうど旧スク水から新スク水に移行しようとしてた頃。
スク水って言っても今イメージする競泳タイプとかとは全然違うしさ。


786 :デフォルトの名無しさん:2006/05/29(月) 14:00:56
皇帝はんアメこぉてぇー

787 :デフォルトの名無しさん:2006/05/29(月) 14:12:29
>>785
そのキモさをノリで片付けてしまうのはいかがなものか?

788 :デフォルトの名無しさん:2006/05/29(月) 16:11:28
おまいら、スク水のお腹の下に穴空いてるって知ってたか?


789 :デフォルトの名無しさん:2006/05/29(月) 16:32:12
その下に、更に穴あいてんよ

790 :デフォルトの名無しさん:2006/05/30(火) 15:32:48
>>788
旧いタイプで、ドテの上あたりに折り返しが付いてるやつか?
あそこから手入れると内部にアクセスできるんだよな。

791 :デフォルトの名無しさん:2006/05/30(火) 18:27:22
>>788
泳ぐときに水の抵抗をなくすためだよな。
確か、胸から入った水を排出する

買って実際に穴開いてるか確かめたが、確かにあいていた

792 :デフォルトの名無しさん:2006/05/30(火) 21:33:53
勉強になるスレですね。

793 :デフォルトの名無しさん:2006/05/30(火) 21:56:47
穴開いてないとしたら泳いでるときに水着が水圧で体から浮いてぶよぶよになるんだろうか

794 :デフォルトの名無しさん:2006/05/30(火) 22:05:48
( ´_ゝ`)つ〃∩ フーンフーンフーン

795 :デフォルトの名無しさん:2006/05/30(火) 23:00:09
水の透過性のよくない素材で穴がないとすると、胸元から入った水の抜けるところがないので
おなかの処で水が溜まったり下手すると勢いで脱げそうになったりすることになります。

796 :デフォルトの名無しさん:2006/05/30(火) 23:06:47
改良される前の水着は脱げる事故が頻発したんだろうか

797 :デフォルトの名無しさん:2006/05/30(火) 23:11:38
スクール水着の穴一つにもプロジェクトXみたいな裏話があるんだよ。きっと…

798 :デフォルトの名無しさん:2006/05/30(火) 23:15:00

そうだ!穴あけよう!

と閃いた瞬間に立ち会ってみたかったな

799 :デフォルトの名無しさん:2006/05/30(火) 23:21:02
むしろ水着脱げた瞬間に立ち会ってみたかった

800 :デフォルトの名無しさん:2006/05/31(水) 01:27:20
なんのスレだよ!!w

801 :デフォルトの名無しさん:2006/05/31(水) 01:32:33
もちろんスク水の進化について議論するスレ。
これからのスク水はどうなるか、またどうあるべきかが重要課題。

802 :デフォルトの名無しさん:2006/05/31(水) 12:51:55
試行錯誤してるところに立ち会いたかった。




おっさんが実験台になってたりしてな。

803 :デフォルトの名無しさん:2006/06/01(木) 17:58:36
その穴縫い合わせてみて実際に脱げるかどうか試したらいいんじゃね?

804 :デフォルトの名無しさん:2006/06/01(木) 19:32:43
うちの娘がちょうど中学一年だ。
しかし実際に試したりしたら、何かを失う気がする。例えば家族とか。

805 :デフォルトの名無しさん:2006/06/01(木) 19:47:44
うp
うp!!

806 :804:2006/06/01(木) 20:26:30
うpなんてしたら、さらに何かを失う気がする…
それ以前に、シーズンじゃないから、スク水は無理っすよ

807 :デフォルトの名無しさん:2006/06/01(木) 20:49:19
シーズンはもう目前ですよお父さん

808 :デフォルトの名無しさん:2006/06/01(木) 21:44:45
お父さんはデータ収集と、その解析しなくちゃいけなくて手が離せないから、
しかたがないので実験は娘さんにお願いしよう。
水の流れるルートとか流体解析は大変だし、お父さん泳いでる場合じゃないしな。
うんうん、仕方なくだよ、仕方なく。

809 :デフォルトの名無しさん:2006/06/01(木) 23:29:41
だから何のスレだよw

810 :デフォルトの名無しさん:2006/06/01(木) 23:34:06
ワッフルワッフル

811 :デフォルトの名無しさん:2006/06/01(木) 23:58:43
今のスクール水着は穴なんか空いちゃいねーよ。

812 :デフォルトの名無しさん:2006/06/02(金) 00:11:39
>>811
kwsk!!

813 :795:2006/06/02(金) 00:47:24
だから、今の水透過性のいい素材なら穴の必要がないのよ。

814 :デフォルトの名無しさん:2006/06/02(金) 02:40:06
しかし、俺が小中だったのは、ほんの十数年前で、
その頃は旧スクール水着だったんだよなぁ。

この十年で何があったんだ。
日進月歩なのはコンピュータの世界だけじゃないのか。

815 :デフォルトの名無しさん:2006/06/02(金) 05:14:21
水透過性のいい素材よりも
光透過性のいい素材使って欲しい漏れ

816 :デフォルトの名無しさん:2006/06/02(金) 12:26:06
スク水の話じゃないけど、>>815を見て、少し前まで白い水着が存在しなかったこと思い出した。
毛の色が見えてしまう素材しかなかったからだけど、当時は光透過性が良かったのかもね。

817 :デフォルトの名無しさん:2006/06/02(金) 13:57:03
白い水着が流行った時、赤外線で撮影すると透けて見えるって話題があったな。

818 :デフォルトの名無しさん:2006/06/02(金) 14:34:23
しゅーりょー

819 :デフォルトの名無しさん:2006/06/02(金) 19:56:42
スクール水着って男子用も含めてその前の時代の競泳用水着を採用するパターンだしな。
前畑がんばれの頃かその直後ぐらいの競泳用水着だよな。あれは。

ので、そのうち今時のワンピース型が男子用にも(ねぇか、さすがに

820 :デフォルトの名無しさん:2006/06/02(金) 19:59:43
ワンピースどころか体全部を覆うウェットスーツになるかも。男は暑苦しいね

821 :デフォルトの名無しさん:2006/06/02(金) 20:18:32
アホ共に餌を与えた785は死ねばいいと思うよ

822 :デフォルトの名無しさん:2006/06/03(土) 03:23:11


  ス  ケ  水


に見えた


823 :デフォルトの名無しさん:2006/06/03(土) 13:54:30
というか、このスレしばらく見てて、821の発言みてスレタイ見て、
「あ、そういえばコーディングの話ね」とか思ったのは秘密だ。

824 :デフォルトの名無しさん:2006/06/05(月) 02:31:17
               ,. -一……ー- 、
                /::::{:/::::‐-:、:::丶:\
                 /:::::/´ ̄ ̄__\、::::l,. -―、
              /::::// /:: ̄、:\::::ヽヽ≦、ス=、、
           /::::/::|,.イ:l::丶::::::::\:X:::',:::ヽ、 ヽハ ',ヽ
           f´ ̄!:::::l:_|_|\::\--/,r=ミ|::::::lヾく:l::', | |
          ヒア_|:l::::|::N,≧ミ、トゝ ハ心}!::::::K:ヾニ二ヽ あんた達死刑ッ!
         ,r=ヽレ|:|::::l::|{ ト心     `'" !::::::|::!',::|ハ::! `
        // |:|:::::ハ!、::ヾゝゞ'′ _'_,.ヘ  /::::/:::|_!:l リ
          //  !ハ//|:|::ヽ::::丶、__丶 _ノ/|:::/イ::ハヘ!ヽ_
       L!   /ヘ |:|ミニ='⌒ (⌒ヽ´ _ !イノl/ |:! ! !L_
           〈_{  ヾ.,!/  , ´ \ ∨,.‐、|  l:| |ノ   !
                __!\ /   __ム  V⌒!   !:! !   ハ
             /__レ-〈  / f´ ヽ. '. __! //./-‐ '´ /
                 ヽ! |r'   \l__ V/ /-‐   /
                 「 ! {  `\_f_ノ∠ミヽ! /
               / ヽ`ヽ.二ニァ'V∠二ハ }},!-'
               /   ヽ---/´/レ!ト--'/‐'
             /      / ̄ヽ二ノ´l:ヽノ_
           r‐!       /     l:/   `ヾ==、ー-- 、
          / ̄|     ヽ./     〃  /人   `ト、::::\
          ', /     ,!\   |l       \ /  \:〈
           | ′   / |   `  |:!       /    `
           L.__   /  !    !:ヽ     / !
             ` iー---一'Tー-∨-r‐''´  |

825 :デフォルトの名無しさん:2006/06/05(月) 02:53:40
>>824
スク水を着てから出直してこい。
話はそれからだ。

826 :デフォルトの名無しさん:2006/06/05(月) 03:38:10
自分の書いたコード……

cm.get_map( CPU_Vendor::Intel )->sub_map.find( ID )->second->get_type_string();

もう何がなにやら

827 :デフォルトの名無しさん:2006/06/05(月) 05:41:53
>>824
スケ水を着てから出直してこい。
話はそれからだ。

828 :デフォルトの名無しさん:2006/06/05(月) 06:44:14
全ヘッダーファイルがまとめてあるヘッダーファイルが存在するプログラム(死にたくなるw)
全グローバル変数がまとめてあるヘッダーファイルが存在するプログラム(殺してやりたくなるw)

829 :デフォルトの名無しさん:2006/06/05(月) 08:14:29
>>826
mapのfindの戻り値がendかちゃんとチェックしろよ

830 :デフォルトの名無しさん:2006/06/05(月) 13:42:22
>>824
スク水を着てから出直してこい。
話はそれからだ。

831 :デフォルトの名無しさん:2006/06/05(月) 13:53:51
>>828

別にいいんじゃない?


832 :デフォルトの名無しさん:2006/06/05(月) 22:33:05
>>831
死ねw

833 :デフォルトの名無しさん:2006/06/06(火) 01:57:37
>>全ヘッダーファイルがまとめてあるヘッダーファイルが存在するプログラム
何がダメなの?

834 :デフォルトの名無しさん:2006/06/06(火) 02:12:28
>>833
そうなってると、全部のソースがそのヘッダをインクルードすることになるだろ?
そうじゃなきゃ作る意味が無い。で、そうなると、ひとつでもヘッダを変更したら
全部のソースをコンパイルする必要があることになる。その結果、ソースが増えると
ものすごいスピードでコンパイル時間が延びることになる。

835 :デフォルトの名無しさん:2006/06/06(火) 05:16:21
普段は個別にインクルードして
大量にインクルードするときに便利に使えばいいんじゃないか

836 :デフォルトの名無しさん:2006/06/06(火) 07:59:35
>>828
グローバル変数がそこら中にちりばめられている方が極悪だろう

837 :デフォルトの名無しさん:2006/06/06(火) 08:04:11
.c の中で static スコープで定義した 「グローバル」変数は
あくまでモジュール内のみでグローバルに使えるローカル変数であって
君の言うグローバル変数とは意味が違うんだよ


838 :デフォルトの名無しさん:2006/06/06(火) 08:39:45
プリコンパイルも知らんクズか

839 :デフォルトの名無しさん:2006/06/06(火) 09:28:31
何の言語かわからんのによく叩けるな

840 :デフォルトの名無しさん:2006/06/06(火) 11:18:58
>>835
ダメ。一度でもなんでもヘッダを使ってしまうと、余計な依存関係が
膨らみ続ける。10個のヘッダを便利にインクルードするために使ったはずが、
最終的には100個のヘッダに依存している状況を作る。

841 :デフォルトの名無しさん:2006/06/06(火) 15:50:47
ヘッダ全部インクルードしてたら、そのうち名前がバッティングすると思う。

話は変わるが、

char hoge[128], *hogePtr;
hogePtr = &hoge[0];

こういうのをたまに見かけるのだが、hogePtr = hoge でもいい……んだよね?

842 :デフォルトの名無しさん:2006/06/06(火) 16:19:16
>>841
>ヘッダ全部インクルードしてたら、そのうち名前がバッティングすると思う。
コンフリクトはエラーになるからすぐわかるw
>hogePtr = hoge でもいい……んだよね?
もちろん。しかし
hogePtr = &(hoge[0]);
という書き方も冗長だが読み手に意図を正しく伝え様としている必死さに好感w
自分はやらないけど

843 :デフォルトの名無しさん:2006/06/06(火) 16:21:31
>>841
俺の好みはシンプルな後者。

844 :デフォルトの名無しさん:2006/06/06(火) 16:42:21
>>838は無視か?
stdafx.hに全部のヘッダを詰め込んだりするだろ

845 :デフォルトの名無しさん:2006/06/06(火) 17:21:20
でも、それを使わないときには全部のヘッダを詰め込んだりはしないし、
stdafx.h内もあくまで<>形式のインクルードしか書かないし。

846 :デフォルトの名無しさん:2006/06/06(火) 20:37:18
>>841
Delphiで、ポインタ使わずに組み込みの動的配列使うときにやったりするw

847 :デフォルトの名無しさん:2006/06/06(火) 20:38:20
あ、でも&hoge[0]はねーかw

848 :デフォルトの名無しさん:2006/06/06(火) 21:08:54
>>847
漏れはやることあるよ。
char buf[some], *rPtr, *gPtr, *bPtr;
rPtr = &buf[0];
gPtr = &buf[1];
bPtr = &buf[2];
てなとき。

849 :デフォルトの名無しさん:2006/06/06(火) 22:18:17
>>848
俺なら共用体使う。

850 :デフォルトの名無しさん:2006/06/08(木) 12:41:42
構造体じゃなくて?

851 :デフォルトの名無しさん:2006/06/08(木) 23:18:46
>>850
例えば
union {
char buf[3];
struct {
char r;
char g;
char b;
} rgb;
};
ってことじゃないのかな。

852 :デフォルトの名無しさん:2006/06/09(金) 00:28:05
処理系に依存しそう

853 :デフォルトの名無しさん:2006/06/09(金) 00:35:21
いいえ。

854 :デフォルトの名無しさん:2006/06/09(金) 00:39:51
char r;

char g;
の間にコンパイラがパディング入れちゃったりする心配はない?

855 :デフォルトの名無しさん:2006/06/09(金) 00:48:46
そんなへぼなコンパイラがあるんですか?

856 :デフォルトの名無しさん:2006/06/09(金) 00:54:50
C/C++の話題が多いのは、やっぱりC/C++が糞コードを生みやすいからなんだろうか?

857 :デフォルトの名無しさん:2006/06/09(金) 01:01:46
OSやらドライバまで書けるが罠も多いからなぁ
特にC++
諸刃の剣どころじゃない

858 :デフォルトの名無しさん:2006/06/09(金) 01:19:35
かみがチェーンソー持ってるようなもんだな

859 :デフォルトの名無しさん:2006/06/09(金) 01:22:18
ドライバや組み込み系のプログラミングって、
結局メモリの動的確保がないことと、最適化重視ってだけだろ?

860 :デフォルトの名無しさん:2006/06/09(金) 01:24:19
main関数に、低レベルな制御関数や制御APIが出てくるソースも読みにくいよな。

861 :デフォルトの名無しさん:2006/06/09(金) 01:26:51
#define ZERO 0
をみた時

おまえな、ZEROが0以外になる可能性でもあるのかと

まだ
#define INIT_VALUE 0
とかの方がマシだよ

862 :デフォルトの名無しさん:2006/06/09(金) 01:33:18
1段インデントはスペース2個なのに、2段インデントはタブになるソース。

863 :デフォルトの名無しさん:2006/06/09(金) 01:40:58
#define NULL 0
をみた時

おまえな、NULLが0以外になる可能性でもあるのかと

まだ
#define NULLPO !GA
とかの方がマシだよ

864 :デフォルトの名無しさん:2006/06/09(金) 07:24:15
>NULLが0以外になる
処理系によっては0でない場合があるそうな。俺は見たことないが。

865 :デフォルトの名無しさん:2006/06/09(金) 07:45:35
>>863
ある害虫が、0〜10くらいまで同じようにdefineしているコードを見たときクラクラきた。
確かに数字を直接コード内に書いてはいけないというコーディング規約があったが、
そういうことではないだろうと突っ込みたくなった。
害虫1匹だけかと思ったら、その会社のやつらは全員そうだった。

>>864
言語上は、NULLは必ず0だと決まってなかったっけ?

866 :デフォルトの名無しさん:2006/06/09(金) 07:46:37
そもそもNULLは(void*)0だろ
まぁソースレベルで0と等価なのは保障されてるが

867 :デフォルトの名無しさん:2006/06/09(金) 07:54:56
(void*)0じゃなくて型のない0だな。(void*)0だとC++ではコンパイルエラーになる。

868 :デフォルトの名無しさん:2006/06/09(金) 08:03:20
>>864
中途半端な知識厨乙。ちゃんとC FAQ全部よめ

869 :デフォルトの名無しさん:2006/06/09(金) 08:42:14
>>861
「0とOが見分けられるフォント使えよ」が正しいツッコミ

870 :デフォルトの名無しさん:2006/06/09(金) 08:44:14
C FAQ読んだ。成程、NULLとヌルポインタは違うのな。

871 :デフォルトの名無しさん:2006/06/09(金) 09:18:16
>>861
#define HOGE_YEAR1975 1975

とか、名前に値を反映させてしまってるとかありがちだな。



872 :デフォルトの名無しさん:2006/06/09(金) 11:47:12
>>859
>ドライバや組み込み系のプログラミングって、
モダンなOS用のドライバなら、動的確保は普通に行うよ。

873 :デフォルトの名無しさん:2006/06/10(土) 01:36:43
>>862
そういうソース、自分で造ってたような気がする。
emacs でちゃんと設定せずにインデントを2にすると、そうなったような・・・

python書くようになってインデントをタブにすることを止めたので、最近はそうなってないはずだが。

最近パッと見て下手だなぁと思うのは、-> やら . やらつきまくってる変数をそのままずっとあちこちに書いてあるソースかな。

874 :デフォルトの名無しさん:2006/06/10(土) 01:40:44
>>836
わかってないな。
変数や関数の影響範囲はヘッダーファイルのインクルードの仕方で絞れるだろ?
それを放棄して必ずソースの全域で使えるようにしてしまうような奴は
いつまでたってもプログラマレベル1のまんまだ。

グローバル変数や関数を使っちゃ駄目だってのはgotoと同じぐらい駄目だって言われてるのに
何故かこれに関してだけ耳をふさぐ奴が多いんだよな。
一度、どうして駄目だと言われるのか?代わりにどうやって組めばいいのか?って頭使ってよく考えろといいたい。
多分、人から実装方法だけ聞いたんではなんでそんな面倒なことをするのか全く理解できないと思う。
さすがに10年近くもやってるのにこんなのわからないなんてアホ過ぎるにもほどがある。

グローバル変数や関数を使う奴とマスターヘッダーを作る奴ってのは
俺の経験ではほとんどの場合一致している。
で、そいつはオブジェクト指向も理解できないことになる。

875 :デフォルトの名無しさん:2006/06/10(土) 02:01:25
delegatedのソースってこのスレ的に推奨(w

876 :デフォルトの名無しさん:2006/06/10(土) 02:18:06
>>874
まぁお前が低脳だってのも分かったよ

877 :デフォルトの名無しさん:2006/06/10(土) 02:31:15
>>876
この板も理由無しでお前を支持するほど馬鹿ぞろいなわけじゃないでしょw
悪いけどグローバル変数の問題と正面から向き合って考えたことがないプログラマってのは
他のどんな知識を手に入れても、レベルは1のまま。

878 :デフォルトの名無しさん:2006/06/10(土) 02:37:30
まぁまぁ、そこまで自分は低脳ですよってアピールをいつまでも続けなくていいよ。

879 :デフォルトの名無しさん:2006/06/10(土) 02:39:38
低脳というか、ちょっと論点外してるよな。>>874は。

880 :デフォルトの名無しさん:2006/06/10(土) 03:14:31
>>879
はぁ?なにいってんの?

881 :デフォルトの名無しさん:2006/06/10(土) 03:35:17
>>876-880
スク水を着てから出直してこい。
話はそれからだ。

882 :デフォルトの名無しさん:2006/06/10(土) 03:46:58
グローバル変数がダメだというやつは変数の管理もできないヘタレ

883 :デフォルトの名無しさん:2006/06/10(土) 04:00:39
>>882
いや、その管理ができてないから、グローバル変数になるっちゅーねんw

884 :デフォルトの名無しさん:2006/06/10(土) 04:01:58
>>881
男のスク水なんて短パンじゃねぇか・・・見たいのか・・・orz

885 :デフォルトの名無しさん:2006/06/10(土) 04:24:11
いや、ブリーフタイプかもしれんよ

886 :デフォルトの名無しさん:2006/06/10(土) 06:56:36
>>874
Knuth先生に鼻で笑われそうな意見だ

887 :デフォルトの名無しさん:2006/06/10(土) 07:26:37
>>874
>グローバル変数や関数
これの関数って何?


888 :デフォルトの名無しさん:2006/06/10(土) 08:27:19
printfとかです

889 :デフォルトの名無しさん:2006/06/10(土) 09:38:21
>全グローバル変数がまとめてあるヘッダーファイル

C歴半年しかも独学のオレから質問だ。
これは、あったほうがいいよな?
グローバルなんだからどっかに隠しとく必要がないし、
プログラム内でとうとつに出てきた変数の実体を探すのに便利ジャマイカ。


890 :デフォルトの名無しさん:2006/06/10(土) 09:59:43
>>889
>>874

891 :デフォルトの名無しさん:2006/06/10(土) 11:11:31
グローバル変数の出番は限られてる。

configファイルを読み取ってグローバル変数に格納し、
各地で参照するとかそういう使い方なら問題ないのだが、

グローバル変数で、データのやりとりをしようと考えているのなら
考え直した方がいい。






892 :デフォルトの名無しさん:2006/06/10(土) 11:19:00
>>891
>configファイルを読み取ってグローバル変数に格納し、
>各地で参照するとかそういう使い方なら問題ないのだが、
それだって駄目だよ。
configファイルで受け取るデータの保持の仕方に仕様変更がかかったらどうするんだ?
変更箇所の影響範囲が全く絞れないぞ。

普通にconfigファイルからデータを読み込んで取得できるクラスを作れよ。

で、使うところでのみヘッダーファイルをインクルードしろ。
プログラムでただ1つなら頭で読み込んで末端のクラスには引数で渡していけ。

893 :デフォルトの名無しさん:2006/06/10(土) 12:21:12
>>892みたいな知ったかがいるから困るんだよな

894 :デフォルトの名無しさん:2006/06/10(土) 12:57:07
>>893
じゃあ、どうするのがいいって言ってるの?

895 :デフォルトの名無しさん:2006/06/10(土) 13:26:59
こんな極東の場末の掲示板に集まった素人に毛の生えたような連中が
議論して結論が出るような簡単な問題じゃないだろうが・・・。

グローバル変数が本当にダメなら言語仕様からはずせばいいのにね。

896 :デフォルトの名無しさん:2006/06/10(土) 13:54:09
>>895
何?結局グローバル変数がどうして駄目なのかわからないわけ?
それってオブジェクト指向を理解できないっていってるのと同じことなんだぞ。

897 :デフォルトの名無しさん:2006/06/10(土) 14:24:38
>>891 は恐らく、
「変数の寿命に関して言えば、その期間がプロセスの存命期間に等しければ
 constant と同様の扱いが可能」
という話をしていると思われるが、>>892 のアサッテ方向からの指摘は
一体なんなんだろう。

>>896 のトンチキなレスからも同じ臭いがする。

898 :デフォルトの名無しさん:2006/06/10(土) 14:55:28
子コンロトールのハンドルとかはグローバル変数にしても大丈夫ですか?

899 :デフォルトの名無しさん:2006/06/10(土) 15:01:49
コボラーの集まるインターネッツはここですか?

900 :デフォルトの名無しさん:2006/06/10(土) 15:43:44
readonlyかそれに近いものならグローバルでもいいよ。

901 :デフォルトの名無しさん:2006/06/10(土) 15:57:41
>>897
どこがアサッテなの?
>>891が問題無いとかいってるのは勝手に自分の脳内でそこだけをみて
問題無いとかいってるレベルでしょ?
正直、非常に視野が狭くてとてもプログラマとは思えない。
素質無いし、この先続けててもみんなに迷惑かけるだけだから辞めちゃったほうがいいと思うよ。

902 :デフォルトの名無しさん:2006/06/10(土) 16:02:17
人間様の負担にならなければなんだってOKだよ。
せっかく言語側で名前空間や寿命を扱えるんだから使わないと損ってだけ。

903 :デフォルトの名無しさん:2006/06/10(土) 16:04:18
>>901
んじゃ何処が問題なのか指摘しろよ。
俺様とは考えが違うお前は間違ってるってレベルでしょ?
正直、非常に視野が狭くてとてもプログラマとは思えない。
素質無いし、この先続けててもみんなに迷惑かけるだけだから辞めちゃったほうがいいと思うよ。


904 :デフォルトの名無しさん:2006/06/10(土) 16:15:04
オブジェクト指向わかんないけど
構造化プログラミングがわかるから
グローバル変数がうんこってことはわかる。

905 :デフォルトの名無しさん:2006/06/10(土) 16:19:44
グローバル変数がダメっていうやつは関数型言語でも使っとけと

906 :デフォルトの名無しさん:2006/06/10(土) 16:22:17
シングルトン使えばええやん

907 :デフォルトの名無しさん:2006/06/10(土) 16:23:01 ?#
>>891 みたいに、起動時に初期化して、その後は参照のみって使い方なら、
グローバルでも問題ないんじゃないの?

変数じゃなくて、グローバルな「定数」に文句言う人ってあんまりいないよね。
>>891って、「変数」と言っても、事実上定数と同じ扱いだし。

908 :デフォルトの名無しさん:2006/06/10(土) 16:26:50
で?
それがどうした

909 :デフォルトの名無しさん:2006/06/10(土) 16:31:21
>>907
だからそれが駄目な理由を>>892で書いてるじゃん。

910 :デフォルトの名無しさん:2006/06/10(土) 16:32:43 ?#
>>909
グローバルな定数のほうは >>892 のような問題はないの?

911 :デフォルトの名無しさん:2006/06/10(土) 16:32:52
>>907
いくら定数だからって影響範囲を全域にすると他のライブラリとしなくてもいいような
バッティングに苦しめられることになる。

912 :デフォルトの名無しさん:2006/06/10(土) 16:34:05
>>910
定数も駄目だと思うよ。
使うところだけの最小範囲に絞りこめればそれに越した事は無い。

913 :デフォルトの名無しさん:2006/06/10(土) 16:36:32 ?#
>>909
たとえば、MAX_PATH のような変数があって、これが、

const int MAX_PATH = 1024; とあるか、

extern int MAX_APTH; とあって、実行時に初期化されるかで、

なにがどうちがってくるのだろうって話。

(extern int MAX_APTH は、初期化以外でも変更可能って話があるけど、
それはスコープとは別のこと)

914 :デフォルトの名無しさん:2006/06/10(土) 16:44:37
boostとかでもグローバルな定数使いまくってると思うんだけど
それもダメって言ってんの?

915 :デフォルトの名無しさん:2006/06/10(土) 16:46:31
>>913
定数だと問題はそっちじゃなくて影響範囲の方になるかな。
関係ないところまでMAX_PATHの影響を受けるような組み方だとまずい。

916 :デフォルトの名無しさん:2006/06/10(土) 16:47:11
>>913
どちらにもそれぞれ別の問題がある。
前者はソースローカルにconst int MAX_PATH = 512;とでもされると困るし、
後者は定数を要求する場所で使えない。

917 :デフォルトの名無しさん:2006/06/10(土) 16:48:28
>>914
組み方としては駄目じゃないのかな?
機能がどうのこうのっていうのはいうつもりはないけど。
完成しちまってるもんに関してだと、「もっといい組み方がある」としかいいようがないけどね。

918 :デフォルトの名無しさん:2006/06/10(土) 16:50:07
namespace config_for_xxx
{
 const int MAX_PATH=512;
}

919 :デフォルトの名無しさん:2006/06/10(土) 16:52:55 ?#
>>916
それは記述の問題で、>>892とは別問題でしょ。

(MAX_PATHはあくまで例ね)

920 :デフォルトの名無しさん:2006/06/10(土) 16:55:57
>>919
でも、
>>916
>ローカルにconst int MAX_PATH = 512;とでもされると困るし
っていうのは影響範囲の問題じゃない?
ちゃんと定義したMAX_PATHの影響範囲を頭に入れてないといつでもバグる可能性をもってるじゃん。

921 :デフォルトの名無しさん:2006/06/10(土) 16:57:28 ?#
>>920
じゃ、
getMaxPath(); みたいので取得するってこと?
影響範囲うんぬんなら、同じ問題抱えてると思うよ。

922 :デフォルトの名無しさん:2006/06/10(土) 16:58:32
設定ヘッダはこんな感じにして、
namespace MAX_PATH
{
 const int MAX_PATH=512;
}
namespace MAX_DIR
{
 const int MAX_DIR=256;
}

各cppで利用する定数をusing namespaceする。


923 :デフォルトの名無しさん:2006/06/10(土) 17:00:22
>>922
だからそれじゃMAX_PATHが二カ所にあったら意味が無いんだから、
やるんだったら
namespace config_for_xxx
{

namespace MAX_PATH
{
 const int MAX_PATH=512;
}
namespace MAX_DIR
{
 const int MAX_DIR=256;
}

}

924 :デフォルトの名無しさん:2006/06/10(土) 17:02:21
>>921
それのほうがなんぼかましになるんじゃない?
ただ、それでもクラスを定義したヘッダをマスターヘッダにインクルードしてたら全く意味無いけど。
問題は実装するとかじゃなくてキチンと影響範囲を限定できる仕組みになっているかどうかだから。
ヘッダを使うところだけにインクルードするって大事だと思うんだけどなぁ。

925 :デフォルトの名無しさん:2006/06/10(土) 17:03:41 ?#
ネームスペースで区切っても、
hoge::hage って、どこからでもアクセスできるなら、グローバルと同じだよね。

926 :デフォルトの名無しさん:2006/06/10(土) 17:08:40
やっぱり大事なのはヘッダを必要な箇所以外にインクルードしないってことだね。
マスターヘッダなんて作ってる奴はやっぱりヘタレ。

927 :デフォルトの名無しさん:2006/06/10(土) 17:08:58
getMaxPath()ってインスタンスとメソッドが
publicならグローバルと同じだよね。

928 :デフォルトの名無しさん:2006/06/10(土) 17:09:49
max_path.h
const int MAX_PATH=1024;

max_dir.h
const int MAX_DIR=512;





929 :デフォルトの名無しさん:2006/06/10(土) 17:10:22
>>927
だから大事なのはインクルードで影響する範囲を最小減に絞ることってさっきから言ってるじゃん。
わからないのか?死ねよw

930 :デフォルトの名無しさん:2006/06/10(土) 17:11:26
>>928
getMaxPath()ならおこらないっしょ?

931 :デフォルトの名無しさん:2006/06/10(土) 17:11:47
>>892
取り敢えず
>データの保持の仕方
だの
>取得できる
だの、曖昧な言葉で誤魔化さずに
実例挙げるかどうにかした上で
前段落の問題がどう解決するのか説明してくれ。

932 :デフォルトの名無しさん:2006/06/10(土) 17:13:05
windef.hより抜粋(・∀・)
#define MAX_PATH 260

933 :デフォルトの名無しさん:2006/06/10(土) 17:14:06
>>931
だから、根本的な解決策は直接的なコードなんかにはなくて
ヘッダのインクルードによる影響範囲を最小限にしろっていってるんだよ。馬鹿。
わからないのか?あたまわるいなぁおまえw

934 :デフォルトの名無しさん:2006/06/10(土) 17:15:06
>>932
つ 現実 #define MAX_PATH 512

935 :デフォルトの名無しさん:2006/06/10(土) 17:24:12
そんな文句言うことでもないでしょ 状況次第
ライブラリとして使われるようなプログラムならまとめたヘッダーがあってもいいだろうし
あってもいいと思われるパターンが限られてるとは思うけど

936 :デフォルトの名無しさん:2006/06/10(土) 17:42:47 ?#
ヘッダーファイルでうんぬんって話なら >>891 だって、問題ないね。

937 :デフォルトの名無しさん:2006/06/10(土) 17:54:42
>>933
ふむふむ。すると、グローバルかどうかはどうでもよくて、
>普通にconfigファイルからデータを読み込んで取得できるクラスを作れよ。
これも適当にクラスとか言ってみたかっただけで、
真意はその後ろの
>使うところでのみヘッダーファイルをインクルードしろ。
という部分にあるわけですね?
であれば同意します。

938 :デフォルトの名無しさん:2006/06/10(土) 17:57:21
>>937
自動的にグローバルも駄目っしょ。

939 :デフォルトの名無しさん:2006/06/10(土) 18:01:37
>>937
そりゃたまたま定数だっただけで、
変数や関数の場合は両方やらないと影響範囲を限定できないっしょ。

940 :デフォルトの名無しさん:2006/06/10(土) 18:19:26
>>937
だからシングルトン使えってアレほど(ry

941 :デフォルトの名無しさん:2006/06/10(土) 18:27:37
>>940
バカヤローそんなもんグローバルとかわらねーだろ。

942 :デフォルトの名無しさん:2006/06/10(土) 18:33:59
grepすれば影響部分とかすぐ分かると思うんだが

943 :デフォルトの名無しさん:2006/06/10(土) 18:49:16
>>942
無理っしょ。
そりゃ文字列がヒットしたところだけだ。

944 :デフォルトの名無しさん:2006/06/10(土) 19:48:52
それで、どんなときならグローバル変数使っていいの?

945 :デフォルトの名無しさん:2006/06/10(土) 19:54:48
>>944
使うなよ。

946 :デフォルトの名無しさん:2006/06/10(土) 19:55:34
処理速度が必要なところだとグローバル変数は必須

947 :デフォルトの名無しさん:2006/06/10(土) 19:56:18
>>946
static でなんとか踏ん張れ。

948 :デフォルトの名無しさん:2006/06/10(土) 20:01:31
実質グローバル変数の弊害って全ては開発側のリスクであって、ユーザはそんなことどうでもいいよねぇ。

949 :デフォルトの名無しさん:2006/06/10(土) 20:03:58
(´-`).。oO(何を当たり前のことを言ってるのだろう・・・)

950 :デフォルトの名無しさん:2006/06/10(土) 20:07:30
つまりユーザからしてみれば処理速度遅くなるくらいならグローバルでも何でも使ってくれよってことか。

951 :デフォルトの名無しさん:2006/06/10(土) 20:31:15
つまりグローバル変数減らす代わりに処理速度遅いプログラムは本末転倒の真のヘタレプログラムってことですね。

952 :デフォルトの名無しさん:2006/06/10(土) 20:31:28
処がだ。
int func() {
static int rtn;
rtn = 0;
for (;;) {
...; // 適当な処理
}
return rtn;
}
こんな関数があったとする。
今のコンパイラだとrtnはstaticにしない方が大抵速いんだな。
何故なら、staticじゃなければrtnをレジスタ変数にできるからだ。
尤も、最適化の優れたコンパイラならループ脱出まではレジスタ変数として、
ループ脱出後にstaticにコピーするだろうけれど。
#勿論、それでも何もしないよりはコストが掛かるわけだ。

従って、高速化を目的としたstatic化、グローバル化はしばしば下手の考えとなるってこった。

953 :デフォルトの名無しさん:2006/06/10(土) 20:41:10
なんだ。
結局>>882が正解か。

954 :デフォルトの名無しさん:2006/06/10(土) 21:39:50
>>952
現在の話題と全然合ってない例出されても、お前がバカだっつーことしかわからんよ。
次から気をつけろよ。

955 :デフォルトの名無しさん:2006/06/10(土) 21:48:56
>>954
うはww

956 :デフォルトの名無しさん:2006/06/10(土) 21:53:48
ていうか、こんな話題で処理速度出されてもなw

957 :デフォルトの名無しさん:2006/06/10(土) 22:01:38
結局、グローバル変数が何故駄目なのか理解できなかったのか?
レベル低いな。

958 :デフォルトの名無しさん:2006/06/10(土) 22:08:55
話題出した奴のレベルが低かったからなぁ

959 :デフォルトの名無しさん:2006/06/10(土) 22:13:13
>>946
>処理速度が必要なところだとグローバル変数は必須
>>947
>static でなんとか踏ん張れ。
>>950
>つまりユーザからしてみれば処理速度遅くなるくらいならグローバルでも何でも使ってくれよってことか。
>>951
>つまりグローバル変数減らす代わりに処理速度遅いプログラムは本末転倒の真のヘタレプログラムってことですね。
>>952
>従って、高速化を目的としたstatic化、グローバル化はしばしば下手の考えとなるってこった。

>>954
斯くの如く卑近な話題に乗っていると思うが。

>>956
同意。

960 :デフォルトの名無しさん:2006/06/10(土) 22:16:21
>>959
てんで的外れだっつってんだよ

961 :デフォルトの名無しさん:2006/06/10(土) 22:20:11
点で的外れ、
線で場違い。

962 :デフォルトの名無しさん:2006/06/10(土) 22:26:55
俺様がそう思うから違う考えの奴は尽く馬鹿ということですか

963 :デフォルトの名無しさん:2006/06/10(土) 22:29:58
>>962
例えば>828とかか。

てか、このスレで愚痴言ってる奴全員そうか。

964 :デフォルトの名無しさん:2006/06/10(土) 22:38:45
お前ら>>372を見習えよ

965 :デフォルトの名無しさん:2006/06/10(土) 22:41:21
結局グローバル変数は使わないけど処理速度は落とさないって自信もって言える奴はいねーのかよw

966 :デフォルトの名無しさん:2006/06/10(土) 22:50:17
そもそも>>952こんな例だされてもデータ1個なんてどうでもいいんですよ。
10個20個だった場合引数を10個20個にしろっていうのか?

967 :デフォルトの名無しさん:2006/06/10(土) 22:53:42
はじめっからグローバル用途でスタティックするくらいなら素直にグローバル使えばいいのに。

968 :デフォルトの名無しさん:2006/06/10(土) 22:57:36
グローバル変数使うとエラーや変更すべき個所を特定しにくいしバグの原因にもなる。
だからあんまり使いたくないんだけど、処理速度の話されたらやっぱ使っちゃうんだよね…。

969 :デフォルトの名無しさん:2006/06/10(土) 22:58:20
そんなに悩むのならば、辞めちゃえばいいのに、プログラマー。

970 :デフォルトの名無しさん:2006/06/10(土) 22:59:12
>>965
ぷw
処理速度なんて持ち出していいわけしてはずかしくないの?(大笑)

971 :デフォルトの名無しさん:2006/06/10(土) 22:59:47
>>968
自分が馬鹿ないいわけにはちょっとはずかしいかなw

972 :デフォルトの名無しさん:2006/06/10(土) 23:03:40
>>956
逆に処理速度の話されると何か困るのかなぁ?

973 :デフォルトの名無しさん:2006/06/10(土) 23:06:15
>>972
ループが重なる処理でもないしグローバル変数と処理速度を結びつけること自体プログラマとしては失格。

974 :デフォルトの名無しさん:2006/06/10(土) 23:08:00
落ち着けよお前らw

975 :デフォルトの名無しさん:2006/06/10(土) 23:08:30
↑オマエモナー

976 :デフォルトの名無しさん:2006/06/10(土) 23:10:06
ユーザーはプログラマのことなんてどうでもいい、
プログラマの気苦労もどうでもいいし、しったこっちゃない。
プログラムがちゃんと動いて尚早ければもっといい。
ただそれだけ。

977 :デフォルトの名無しさん:2006/06/10(土) 23:12:36
>>973
関数何回も呼ぶ必要がでてくるし、それだけ処理増えるじゃん。
何いってんだか。

978 :デフォルトの名無しさん:2006/06/10(土) 23:14:13
なんだ今日はやけに書き込みが多いな。

979 :デフォルトの名無しさん:2006/06/10(土) 23:15:48
>>977
それは処理速度にかかわる量なの何万回とかそういう話になるけど
そんな処理する前にローカル変数に1回移せば済む話だよね。
君は本当に馬鹿だね。
まともなプログラマならグローバル変数と処理速度なんて絶対に結びつけて話なんかしない。
君、会社でもおかしな発言して嫌われてるでしょ?

980 :デフォルトの名無しさん:2006/06/10(土) 23:17:22
こんなとこに必死に書き込んでる日本人プログラマなんてたかが知れてる

981 :デフォルトの名無しさん:2006/06/10(土) 23:19:19
だれか>>966の質問に答えてやれよw

982 :デフォルトの名無しさん:2006/06/10(土) 23:21:34
おまいらがしている議論は太古からされていて、
しかも結論がでてる事に気づいている奴がたくさんいそうだな

983 :デフォルトの名無しさん:2006/06/10(土) 23:23:18
C初心者ですが、RPG作ってるときにモンスターデータとかは構造体グローバル変数にしてもいいでしょうか?

984 :デフォルトの名無しさん:2006/06/10(土) 23:25:25
>>983
そんなコード、まさにこのスレにお似合いだ。

985 :デフォルトの名無しさん:2006/06/10(土) 23:28:39
このスレもーイラネーだろ

986 :デフォルトの名無しさん:2006/06/10(土) 23:31:51
ただの愚痴スレと化してるな

987 :デフォルトの名無しさん:2006/06/10(土) 23:42:31
>>966
単純に構造体にでもすればいいんでね?

988 :デフォルトの名無しさん:2006/06/11(日) 00:02:17
>>903
そうだね。少なくとも>>901はプログラマ向きじゃない。
今システム構築とかの現場でデスマーチが多いのはたいてい>>901のような馬鹿や、
それ以外の馬鹿がたくさん居るせいだよ。

989 :デフォルトの名無しさん:2006/06/11(日) 01:05:56
>>988
君ねw
グローバル変数なんてつかっちゃうほど頭が悪いのになんでそんなに自分の腕に自信もってるの?w
「gotoは使わない」「グローバル変数は使わない」とか聞いたことないの?ん?
俺がプログラム組み始めた頃はどこでも聞いたけどね。
それこそうるさいぐらいにこれを使ってる奴=馬鹿ってほど叫ばれてたよ。

990 :デフォルトの名無しさん:2006/06/11(日) 01:10:05
たとえそれが正しい事でも教条主義的に語っては反発を招くよ

991 :デフォルトの名無しさん:2006/06/11(日) 01:13:38
Msgbox("3")
Msgbox("2")
Msgbox("1")
Msgbox("0")

992 :デフォルトの名無しさん:2006/06/11(日) 01:19:14
>>989
何故、言語仕様として用意されているのか?

なんて事すら考えられないなんて、逆に不敏になってくるな…。

993 :デフォルトの名無しさん:2006/06/11(日) 01:22:07
要は使いようなだけで。gotoだって使いようによっては使わない場合よりシンプルになる場合だってある。


994 :デフォルトの名無しさん:2006/06/11(日) 01:22:28
>>992
じゃあ、gotoだって使えよw

995 :デフォルトの名無しさん:2006/06/11(日) 01:24:56
むしろ、なぜ、グローバル変数を使うことが嫌悪されるのかをよく考えて欲しいと思う。

996 :デフォルトの名無しさん:2006/06/11(日) 01:25:28
ていうか、この理解無しにオブジェクト指向は理解できないだろ。いやマジで。

997 :デフォルトの名無しさん:2006/06/11(日) 01:26:03
たぶんアレだよ
g_
の部分がキモイとかだよ

998 :992:2006/06/11(日) 01:26:10
>>994
使うべき所では使う。
まあ、普通に書いてたらそうそう使う場面はないが。

999 :デフォルトの名無しさん:2006/06/11(日) 01:27:27
何のルールもなく気楽にグローバルで宣言するのは確かにお利口さんじゃないわな。

1000 :デフォルトの名無しさん:2006/06/11(日) 01:30:05
グローバル変数を使う奴は極上の馬鹿。

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

212 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)