ROMデータのデフォルトのnear/far属性をfarにします。
ROMデータのデフォルトのnear/far属性は,-memory_modelオプションに従います。
本オプションを指定すると,ポインタの指す先がconstのデータの場合,このポインタのnear/far属性はfarです。しかし,const以外のデータを指す場合はnear属性です。このため,ポインタの指す先がconstデータであるか否かによってポインタのサイズが異なり,C90およびC99規格に違反しますが,そのことを承知の上でご使用ください。 |
// -far_romを使用 char* ptr; //ポインタ・サイズは2バイト。__nearのcharを指すポインタ。 const char* c_ptr; //ポインタ・サイズは4バイト。__farのconst charを指すポインタ。 |
const変数へのポインタを引数に持つ標準ライブラリ関数注をリンクする場合, 標準ヘッダ内の“#if defined(__FAR_ROM__)”により,farポインタ用の標準ライブラリ関数に置き換えます。 |
puts,perror,atof,atoff,strtod,strtof,atoi,atol,strtol,strtoul,bsearch,qsort,memcpy,memmove,memcmp,memchr,memset,strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchr,strcspn,strpbrk,strrchr,strspn,strstr,strlen |