Pointer na const
Jan Waclawek
konfera na efton.sk
Čtvrtek Červen 20 06:53:07 CEST 2013
Pytate sa na dve rozne veci.
> musí na konstantu vždy existovat pointer?
Tu je treba byt velmi presny so slovom "konstanta", lebo sa tym moze mysliet vselico, napr. konstantny vyraz (C99 6.6), trebars ako 2 + 3, alebo v tomto vlakne spomenuty (uint32_t)pdata1. Na to samozrejme smernik neexistuje. Ak myslite premennu oznacenu kvalifikatorom "const", tak ano, je to objekt, na ktory sa musi dat vytvorit smernik operatorom &.
Na druhej strane, ak taky operator nikde v programe nie je pouzity, tak prekladac nemusi pre premennu kvalifikovanu ako const vyhradit pamat.
C99, 6.7.4, pozn.114:
The implementation may place a const object that is not volatile in a read-only region of
storage. Moreover, the implementation need not allocate storage for such an object if its address is
never used.
> Může to rovnou přeložit stejně, jako x=8; ?
Ano.
wek
Další informace o konferenci Hw-list