雑記
ジ・オリジン:補足
最終更新:
匿名ユーザー
-
view
どうしても、C言語で1オリジンがいいんだよぅ、というわがままなあなたに。
C言語で配列を1オリジンで扱う方法も、なくもない。
【具体例1】
unsigned char hoge[100]; unsigned char* hoge2; hoge2 = &hoge[-1];
こうすればhoge2を1~100でアクセスできる。
【具体例2】
#define ORIGIN_1((array),(num)) array[num-1]
これで、
unsigned char hoge[100];
があったとして、
ORIGIN_1(hoge, 1)
などとすれば、やはり1~100でアクセスできる。
【具体例3】
#define ORIGIN_1(num) (num-1)
これで、
unsigned char hoge[100];
があったとして、
hoge[ORIGIN_1(1)]
などとしても、やっぱり1~100でアクセスできる。
【具体例4】※動的確保のポインタを添え字で扱う場合
unsigned char pHoge = NULL; pHoge = (unsigned char*)malloc((size_t)100); pHoge--;
これで、やあっぱり1~100でアクセスできる。
ご満足、いただけたでしょうか。