On 2005-04-27 17:30:25 +0200, Gabriel Dos Reis wrote: > Vincent Lefevre <[EMAIL PROTECTED]> writes: > > | On 2005-04-27 15:30:39 +0200, Gabriel Dos Reis wrote: > | > Vincent Lefevre <[EMAIL PROTECTED]> writes: > | > > | > [...] > | > > | > | > > But if they are never modified, they evaluate to > | > | > > constants, right? > | > | > > > | > | > > The fact that they are not considered as constant > | > | > > expressions, is it due to the fact that the environment > | > | > > is allowed to modify them? > | > | > > | > | > It's due to what the C standard says. A const variable in C > | > | > isn't a constant, it's just a read-only variable. > | > | > | > | 1+1 isn't a constant either > | > > | > It is an integer constant expression, and its evaluation yields a > | > constant (see 6.6). Can you explain why you believe that is false? > | > | I never said that it was false. > > Ah, then what exactly is your point?
That a constant expression isn't necessarily a constant (6.4.4). So, if one says that some expression isn't a constant, it doesn't necessarily mean that it isn't a constant expression. Example: the expression 1+1 is not a constant, but it evaluates to a constant (2) and it is a constant expression. So, the only fact that a const variable is not a constant does not imply that it is not a constant expression, and my questions above have not been answered. -- Vincent Lefèvre <[EMAIL PROTECTED]> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / SPACES project at LORIA