ポインタについては,“const”の指定位置により,異なる解釈がされます。
ポインタが示すオブジェクト(*p)を書き換えできないことを示します。
ポインタ自体(p)は書き換え可能です。
したがって,以下のようになり,ポインタ自体はRAM(.dataなど)に配置されます。
*p = 0; /*エラー*/
p = 0; /*正しい*/
|
ポインタ自体(p)を書き換えできないことを示します。
ポインタが示すオブジェクト(*p)は書き換え可能です。
したがって,以下のようになり,ポインタ自体はROM(.const/.constf)に配置されます。
*p = 0; /*正しい*/
p = 0; /*エラー*/
|
ポインタ自体(p),およびポインタが示すオブジェクト(*p)を書き換えできないことを示します。
したがって,以下のようになり,ポインタ自体はROM(.const/.constf)に配置されます。
*p = 0; /*エラー*/
p = 0; /*エラー*/
|