ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Java四則演算クラスに配列と++--とtoString()を追加

2006-10-31 22:56:55 | PG(Java)

自作のJavaの四則演算クラスに、配列とインクリメント・デクリメント演算子(前置・後置)とtoString()を追加してみた。

関数は今まで変数名(識別子)と同じ優先順位に置いていたけれど、よく考えてみるとトップは「識別子そのもの(変数や数値)」と「式を丸括弧でくくったもの」が正しいので、その次の優先順位(後置演算子の位置)に変えた。
で、配列も関数と同じ優先順位に置いた。
で、後置演算子のインクリメント・デクリメントもそこに置いた。

これらは全部後置演算子だけど、インクリメント・デクリメントは単項で、配列は二項演算子のように扱えることを発見(添字が二項目)。
(関数は引数の並びが特殊だから、残念ながらそういう分類には入れられなさそう。強いて言えば「引数の並び」が二項目になるけど)

で、前置演算子のインクリメント・デクリメントも追加したんだけど…。
今まで、+と-は符号と加減算の二通りで使っていたけれども、単項・二項の違いで区別していた。しかし++と--はどちらも単項なので、そういう区別は出来ない。
仕方ないので、後置演算子だけ特別ロジックを組んでしまった…美しくないけど(嘆)


配列の演算はかなり大胆に省略して、【たまたま添字が付いている文字列】として扱ってしまった(苦笑)
なので、a[1]とa[1][1]には全く関連が無い。a[1]とb[1]は絶対別物として扱う。
C言語ならポインター演算に当たるので、a[1]とb[1]が同じ場所を指している可能性もあるんだけど。あ、それはJavaも一緒か(汗)
さらにはC言語だとa[1]と1[a]が同じ意味なんだが…そこまで解釈してられないっす(特に二次元以上の配列になると、考えるのも面倒(爆))。


あと、toString()を実装してみた。
これで綺麗に式が表示できる!…はず。だけど、通り一遍しかテストしてないから、変な出方をするかも?(汗)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

プリプロセッサ命令

2006-10-30 20:45:19 | PG(C言語)

C言語のプリプロセッサ命令、大好きだ。Javaは不便だ。

なんと言っても構造体の初期化に使えるのが素晴らしい。
まぁJavaではそういう初期化自体、あまりしないような気もするけど…。

あとはループ処理なんかが出来ればバッチリなんだけどなー(笑)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

mallocの読み方

2006-10-30 20:39:27 | PG(C言語)

前にstrtok()について書いたときに、realloc()の使い方にちょっと注意しなきゃいけないなーと思ったので、malloc()系の関数についてのメモを書いてみた。
(ついでにstrtok()は独立したページに移した

と言いつつ、実は「malloc」の呼び方について書いておきたかっただけだったりして。
「マロック」って呼び方は変ですぜー親分。

「char」も自分は「キャラ」や「キャラクター」と読む。「チャー」は…馴染まない(苦笑)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MSP リソースの割当時の期間

2006-10-28 21:27:25 | ツール

MS-Projectでタスクにリソース(担当者)を割り当てるとき、2人の担当者を割り当てると、設定していたタスクの期間(開始日~終了日の日数)が減ってしまう。
これはデフォルトの動作が「単位数固定」になっている為であり、変更してやれば期間が変わらないように出来るということを知ったのでメモ。

それにしても、MS-Projectはなんとなく使っている部分が多くて、それを本当に使うための知識が無いのが痛い…。
(DBを知らずにDBMSを使っているようなものだからなー…)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

VC++プリプロセッサ出力内容確認方法

2006-10-27 20:40:16 | PG(VC++)

VC++6.0で「プリプロセッサがソースを処理して展開した結果」を確認する方法をメモ。

JavaよりもC言語(C++)が圧倒的に優位なのが、マクロ(プリプロセッサ命令)が使えること。
型と無関係な関数のようにも使えるし、データを列挙するのにも使えるのはとても強力

でも当然ながら、複雑なマクロを組んでしまうとどういう結果になるのか怪しくなるわけで…。そんな時にはプリプロセッサが出力した内容を確認したくなる。
objファイルのように裏でこっそり展開結果をファイルに出力していてくれれば、わざわざオプションなんかを指定しなくても済むんだけど…まぁあんまり展開結果を見ることはないから、いいか。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする