続・プログラマー適性

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]

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

:) :D 8-) ;-) :P :E :o :( (TT) ):T (--) (++!) ?;w) (-o-) (**!) ;v) f(--; :B l_P~ (QQ)

     

[X] [Top ↑]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0185 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