Re: typedefs and structs

From: Andreas Schwab
Date: Wed Nov 09 2005 - 18:29:13 EST


Vadim Lobanov <vlobanov@xxxxxxxxxxxxx> writes:

> However, if the code is as follows:
> void foo (void) {
> int myvar = 0;
> printf("%d\n", myvar);
> bar(&myvar);
> printf("%d\n", myvar);
> }
> If bar is declared in _another_ file as
> void bar (const int * var);
> then I think the compiler can validly cache the value of 'myvar' for the
> second printf without re-reading it. Correct/incorrect?

Incorrect. bar() may cast away const. In C const does not mean readonly.

Andreas.

--
Andreas Schwab, SuSE Labs, schwab@xxxxxxx
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/