続・プログラマー適性

1 of 212Next»
前回Link は軽い内容ですが、今回はちょっとまじめ(たぶん愚痴)。

たまにですが、他人の書いたプログラムを見たり修正したりする仕事が来ます。そのときに見つけた2例。一応Cで例を見せますが、言語は関係ない話です。

例1
呼ばれた時の時刻(1970/1/1 0:00:00から経過した秒数)を返す関数time()を使って
void func(void){
  if( time() == foo1 ){
    (何らかの処理)
  } else if( time() > foo2 ){
    (何らかの処理)
  } else if( time() < foo3 ){
    (何らかの処理)
  } else if( time() == foo4 ){
  (以下似たような繰り返し)
  } else {
    (何らかの処理)
  }
}
  
例2
func1とfunc2は別スレッドで実行される可能性があります。つまり共有変数ABCを使って、どちらか一方だけに処理をさせたいという意図です。
static int ABC = 0;

void func1(void){
  if( ABC == 0 ){
    ABC = 1;
    (何らかの処理)
    ABC = 0;
  }
}

void func2(void){
  if( ABC == 0 ){
    ABC = 1;
    (何らかの処理)
    ABC = 0;
  }
}
  

例1,2を書いたのは別の人です。私は彼らに対して、このコードは危険ではないかと言いました。彼らの答えは「短時間で終わる処理だから、大丈夫だよ」でした。なぜ私が危険に感じたのかは次のページに書きますので、まぁクイズとでも思って。

1 of 212Next»

— posted by mu at 12:11 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0103 sec.
prev
2009.12
next
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31