上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--|スポンサー広告||TOP↑
NullPointerExceptionとか(ガッはしないでいいですよ?)があるのをよく突っ込まれるJavaだが、そもそもほんとにポインタじゃん。
たとえば、Javaでオブジェクトの変数を宣言してオブジェクトを作って代入するコードは以下のとおり。

MyObject obj;
obj = new MyObject();

次に、C++でオブジェクトのポインタ変数を宣言してオブジェクトを作って、ポインタを代入する操作は以下のとおり。

MyObject *obj;
obj = new MyObject();

ほとんど同じじゃないか!

いや、これは驚いたね。要するに、JavaではC++と異なり、オブジェクト変数を暗黙にオブジェクトのポインタ変数として使用し、明示的にポインタであることを示す必要がなくなったということ。まぁ、あとは整数型とかのポインタが使えなくなったし、ダブルポインタとかが使えなくなったけどね。
さらに、ポインタ演算はなくなり、オブジェクトを必ずポインタにしたことで「->」(アロー)ではなく、「.」(ピリオド)でメンバにアクセスできるようになった。
結局はJavaにはC++に比べると自由度の小さい暗黙的なポインタがあるということ。

なお、Javaには引数の参照渡しが消えてなくなってる。ポインタと参照渡しを混ぜると訳がわからないからなんだろうけど、だからってオブジェクトのあれを参照渡しって言うのはやめようよ! 俺はそのせいで本来の意味の参照渡しがある、VBではまったし。
スポンサーサイト
06/29|プログラムコメント(0)トラックバック(0)TOP↑
怒涛の更新!
さて、最近C言語を使っているのだが、C言語にはCSVを読むのに適した関数がない。
特に文字列分割するのに適したものがない。(これは関数間の配列の受け渡しが面倒なせいだろう。)
strtokを思いつくかもしれないが、この用途に適していない。なぜなら、CSVの空要素を無視してしまうからだ。英文からの単語の抜き出しとかには最適なのだが(というか、これが本来の目的なんだろう)

というわけで、作ってみた。
ソースはちょっと長いので、追記のほうに。

使い方はソースのコメント部分を読んでもらうとして、これの特徴は以下のとおり。
・改行と終端を終わりとして扱うので、fgets()などと組み合わせやすい。
・CSVの文法上のエラーを検知しない。(よって戻り値なし)
・ダブルクォーテーション未対応。(つまり、文字列としてカンマと改行は使用できない)
・とりあえずShift-JISには対応するが、これはカンマの文字コードが2バイト目に使用されていないだけである。

しかし、この関数。なんか昔どこかで見たような。<<まぁ、いいや。さぁ、いくか!>>

06/14|プログラムコメント(0)トラックバック(0)TOP↑
最近、ニコニコ動画でA7のプレー動画を見ている。ニコニコ鉄道だ。
まぁ、それはおいておくとして、先日改造したこのPCはそもそも、3年前の購入時にA7を快適動作させるという目的があった。液晶ディスプレイも当時はまだ高かったUXGAの20インチを購入したのも、A7がUXGA対応であったことも大きい(アスペクト比固定機能を持つディスプレイがほとんどなく、SXGAでは多くのゲームで比率が狂ってしまうことも理由のひとつ)
というわけで、久しぶりにやっていたのだが、トレコンとマプコン(とダイコン)ほしいよ。そういうわけで、僕は拡張キットを買おうとビックカメラに行ったのだった。
だが、そこには驚愕の状況が!
なんと、拡張キット全部の合計金額がどうみてもA7の完全版(本体+拡張全部)より高いのだ。なんか、拡張キット買ってきたって言うか、続編買ったというか。不思議な気持ちだ。

さて、もちろん隣にはあれがおいてあったのだが……
A8? HXに実在車両を含めた完全版ですか?
06/14|ゲームコメント(0)トラックバック(0)TOP↑
プロフィール

G.U.Nex

Author:G.U.Nex
職業:プログラマ
趣味:ゲーム(PC、コンシューマ)、ネットサーフィン、ニコニコ動画視聴、プログラミング、鉄道全般
PHP, C, C++, VB(系), Java, JavaScriptを使える。
最近はRubyにはまってる。

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム
ブログ内検索
RSSフィード
リンク
フリーエリア
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。