パスワードを忘れた? アカウント作成

espyさんのトモダチの日記みんなの日記も見てね。 最新から新しい日記やタレこみを確認できますよ。

13457422 journal
プログラミング

espyの日記: C言語のwhile () の条件式にデクリメントで はまった。 4

日記 by espy

もう何ヶ月、何年ぶりか?の書き込み。

趣味的な 16bitマイコンのプログラムで、こんな感じのコードを書いていた:
(簡略化している)

unsigned int tmout = 50000;
while (tmout--){
    if (I2CTxComplete){
        ret = txlen;
        break;
    }
}
if (tmout == 0){
  ret = E_TMOUT;
  if (UCB0STAT & UCB0BUSY) ret = E_BUSY;
  if (UCB0STAT & UCB0NACK) ret = E_NACK;
}
retrun ret;

これはI2Cの送信の関数を抜けるあたりのコードで、送信完了を待って、普通に完了したら送信したバイト数(txlen)を返し、タイムアウトになったらエラーコードを返す(E_BUSYなどは負の値)という仕掛けにした。50000回もステータスを待って完了(I2CTxComplete)しなければ異状ありとみなして、次の if (tmout ==0) で引っかかると思ったが、実際は引っかからなかった。
ブレークポイントを張って、エラー時の tmoutの値を見ると、0xFFFF…あれれ、なんで?

もしや、と思って、cygwin上でこんなプログラムで実験してみると

    j=10;
    while (j--){
        printf("%d ",j);
    }
    printf(" j=%d\n", j);

    j=10;
    while (--j){
        printf("%d ",j);
    }
    printf(" j=%d\n", j);

すると出力は、

$ ./test-while
9 8 7 6 5 4 3 2 1 0 j=-1
9 8 7 6 5 4 3 2 1 j=0

ループを抜けたら j=-1、えーそうなのかー...

コンパイルで、アセンブラソースを出力させて中味を確認してまでやって、ようやく理解した。

while (j--) { 中味; } だと、jの値を評価し、中味を実行するか判定した後で 変数jの値を減らす。(そして判定が真なら中味を実行する)
while (--j) { 中味; } では、変数jを減らしてから jの値を評価し、中味を実行するか決める。

よくよく考えれば、 if ( ) の条件式で単項演算子を使う時は注意だよ、という、ふつーに教科書に載ってる話と全く同じ話なのに、while (条件式) ではカッコ内を処理してから…と思い込んでしまった。単にそれだけの事。

12966580 journal
日記

espyの日記: LCDディスプレイが故障、買い換えた。 2

日記 by espy

自宅のメインPCで使っていた液晶ディスプレイが、10/24月曜日の帰宅後に付けたら、点灯しなくなっていた。 バックライトが死んだっぽい。兆候はあったが、ついに死んだか。

その液晶ディスプレイは、ソニーのSDM-M81、いつ買ったのか、記録がないか検索すると、どうやら2001年8月11日に、町田で17万ほどで購入したらしい。なんと15年も使っていた。

新しいのを買わねばならないので調べ始める。置き場所に制約があり、横幅45センチ以下で、今と同等か、可能ならそれ以上の解像度のが欲しい。前のは18インチだったが、最近は「額縁」が狭いのでもっと大きくできるかな、やっぱり国内製を応援したいよね…と色々期待したが、思いのほか、選べる製品が少ないと気づく。
横幅45センチ以下なら19インチ以下、ところが最近は21インチとか 24インチで、それもワイド型の方が主流。では19インチでワイド型はどうかといえば、あるにはあるが、縦900ドットみたいに上下が狭くなってしまう。使っていたディスプレイが1280×1024ドットだったので、それと同じで19インチならば良し、という事にした。

ワイド型に対して旧来のはスクエア型と呼ばれているらしいが、それがもう、すごく少ない。19インチ品、国内だとイイヤマとI/Oデータ、後はNECの直販物くらい。そして、ヨドバシなどの量販店では「取り寄せ」。一応、町田のヨドに足を運んでみたが、19型スクエアは、やっぱり無い。
最近の製品は重量も軽いので、店頭で買って、手で持ち帰りたかったが、仕方なく通販を選ぶ。水曜早朝にヨドバシのwebサイトでオーダーしたが、金曜の朝に見ても「確保中です」で変化がなかった。土日には使いたいので待ってられない。
金曜の早朝にヨドバシのはキャンセルして、2009年に FMV BIBLO LOOX UC30なんぞを購入した時に利用した、ECカレントに発注。13時までなら当日発送とあったのに出ない出ない、と監視していたら、21時過ぎに佐川に発送された。翌土曜日に無事受け取れた。

機種は、LCD-AD192SEDW (IO DATA)。電源ボタンなど操作ボタンが押しづらいが、表示は必要十分で見やすく満足している。
  15年前は17万円もしたのに、今や2万以下で買える。バックライトもFL管が白色LEDになって、重量も7.7Kg → 3.3Kgだ。

12861328 journal
日記

espyの日記: シン・ゴジラ (映画)

日記 by espy

観た。
ネタバレは避ける。

エヴァを知っている人や、最近のアニメでは「亜人」を楽しめた人には、面白いと思う。

長谷川博己、『シンゴジラ』で感じた成長物語「問題作になるだろうな」 | ORICON STYLE http://www.oricon.co.jp/special/49172/

12637773 journal
日記

espyの日記: 謹賀新年

日記 by espy

今年もよろしくお願いします。
といってもツイッタばかりで日記頻度は落ち。

父に付き合うという感じで成田山への参拝ももう何回だろう。
元気で居てくれる間は続けたい。
おみくじは父が吉、私は半吉を引いた。

成田駅の駅前にゆるキャラが立っていたけど、ご当地ものじゃなくてラエリアンだった。

12187224 journal
日記

espyの日記: hello, world のうんちく 2

日記 by espy

https://twitter.com/duo6750/status/611274297185714176

B言語のテキストで例題だったのが最初だそうな。

Hello world. Now is the time for all good men to come to the aid of the party.

12145963 journal
日記

espyの日記: 派遣法改正案のポイント 4

日記 by espy

改善?改悪?派遣法改正案のポイントを整理 (日本テレビ系(NNN))
改正案の問題点が大変分かりやすい動画。(2分18秒)

派遣法改正、“雇い止め”通告 広がる不安 (TBS News i)
>厚生労働省によりますと、派遣労働者は全国でおよそ126万人。そのうち49万人が“専門26業務”に就いています。

この49万人が、3年で終了の対象者です。 法改正を睨んで、もうあらかじめ切っておこうとする動きも始まっています。

[2]最長3年へ、派遣の専門26業務撤廃 (ITpro、登録必要)
>ソフトウエア開発に携わる派遣技術者の無期雇用は約2割にとどまるのが現状だ(図3)。約8割は有期雇用となっている。

派遣元で無期雇用者であれば3年の制限はありませんが、ソフトウェア開発している派遣技術者の無期雇用化は進んでいません。

(追記)続きは 自ブログ

12059046 journal
スラッシュドット

espyの日記: スラド ・・・・ 3

日記 by espy

茶色ベースってなんだよ....
チャイロレンジャーはおらんやろ...
ベース色が茶色の魔法少女は居ないだろ...
キュアブラウンとかいないだろ...
セーラーサターンは土星でも茶色くないだろ...

typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...