株式会社後藤広一 ソフトウェア開発
システムインテグレータ 株式会社後藤広一
昔勤務していたコンピュータ会社で2000年問題の対応をしました。100年に一度、閏年ではない年がやって来るそうです。
ちなみに2100年は閏年(うるうどし)ではありません。
2100年問題 例:
権利確定日は「29日」の場合があります。
令和5年の権利確定日は「2月28日、3月31日」です。
来年令和6年の権利確定日は「2月29日、3月29日」です。
2100年の権利確定日は「2月26日、3月31日」です。
固定データでもいいので対応しておいた方がいいかもしれません。
コンピュータプログラムのバグ(プログラムミス)のパターン
2023年11月28日
「AでもBでもない」は「Not A or Not B (!A || !B)」ではなくて「Not A and Not B (!A && !B)」
※このプログラムのケースは非常にヤバイ!なにがヤバイっていうとテストケースの漏れがある可能性があるので、その影響でメモリ領域解放のタイミングがなくなるとヤバイ。
自動ではコードチェックが出来ないソースの例
自動ではコードチェックが出来ないソースの例
オーバロード、オーバライド時の同じローカル変数を間違えると誤操作確定。
エクリプスを使用しても正常なソースとして認識されます。
目視でソースコードをレビューするしかありません。ちゃんと眠りましょう。
プログラミング教室
(C言語)
C言語で一番難しいのはポインタです。逆にポインタを理解し、メモリ破壊を起こさない(※1)様にすれば即刻プロ級です。
1.C言語のポインタ変数はメモリ領域(静的もしくは動的)のアドレスを格納するためのサイズしか無い(ハード毎で同一サイズ)ことに注意して下さい。
2.*が付くポインタ変数は、通常の変数と違いアドレスしか格納できないことに注意して下さい。
(プログラムコード例)
型宣言(構造体含む) *ポインタ変数;
ポインタ変数 = &(メモリ領域、配列等) もしくは アドレス
&はアドレスを意味します。
(※1)ポインタ変数は必ず初期化(アドレスを格納)して、メモリ領域のサイズを意識してプログラミングしている事を確認しましょう。