何日か前のつづき。



ソフトウェア開発技術者試験用の参考書買いました。


3週間完全マスター ソフトウェア開発技術者 2007年版
¥2,940
Amazon.co.jp

アップがいいかなって思って。


ダウンと迷ったんですけどね。

平成19年度春期秋期 ソフトウェア開発技術者 合格教本 (情報処理技術者試験)/大滝 みや子
¥3,129
Amazon.co.jp


ただ、買った後気づいたけど、友達も上のほうだったような・・・。



かぶったかなガーン




まだ、受けるかどうかは決めてないけど、

少しやってみて、いけそうならって感じで・・・。

そんなに甘くないんですけどね汗


C言語でBYTE型を使うときのマクロ。





#define BYTE unsigned char


として、ヘッダーファイルの下辺りで定義してやればOK



これで、


BYTE a;


とかいう感じで宣言できるっぽい。



もしかしたら typedef を使ってもできるかも。

Visual C++ 2005 で strcpy 等を


strcpy(s, "i");


のように書くと、コンパイル時に


「warning C4996: 'strcpy' が古い形式として宣言されました。」


という警告文が出ます。



これは、strcpy関数自体の書き方が古いわけではなく、VC++2005から以下のような、よりセキュアな書き方に変更されたためみたいです。


strcpy_s(s, sizeof(s), "i");



この変更はC言語標準の書き方ではないため、LinuxとかVC++2005以前のVCならコンパイルは通らないです。



でも、環境ごとに書き換えるのはメンドイので、


以下の文をヘッダーファイルの下辺りに書くことで対応できるみたいです。



#if _MSC_VER < 1400
#define strcpy_s(a, b, c) strcpy(a, c)
#define strcat_s(a, b, c) strcat(a, c)
#define strncpy_s(a, b, c, d) strncpy(a, c, d)
#define _strlwr_s(a, b) strlwr(a)
#define sprintf_s(a, b, c) sprintf(a, c)
#define scanf_s(a, b, c) scanf(a, b, c)
#define sprintf_s(a, b, c, d) sprintf(a, c, d)
#endif


1400 は VC++2005(VC++8.0)を示す値です。


とりあえず思いついたのをいくつか書いただけなので、足りないのもあるし、間違ってるかもしれませんが、


自分が忘れないためのメモとして、残しておきます。





なんか最近、マニアックなことばっか書いてる気が・・・ガーン


system関数という関数で、


プログラムの中で他のプログラムを実行できる


ことを知ったのでそのメモ。


(メモ2日連続になりますが。)





で、そのサンプル、


#include <stdlib.h>


int main(void)

{

system("test.exe");

system("ls");


return 0;

}




system関数を使うにはstdlib.hが必要みたいです。


system("test.exe") とすることで、同じ階層にある test.exe という実行ファイルを実行することができます。


ls とか cd もできるみたいです。


の試験が今度あります。


なので、忘れないようにメモ。



平成19年度秋期 ソフトウェア開発技術者試験


【試験日時】   10月21日(日)


【申し込み締め切り】   8月28日(火) 午後8時 (インターネットから)



ただ、受けるかどうかは考え中。