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