rbbb@rice.EDU (David Chase) (04/28/87)
Chris Torek explained the use of "volatile" and "const" to me; for example, a pointer to a device register might be declared volatile unsigned int * const csr = 0172150; meaning that the value of the pointer never changes, but the value in the pointed-to location could be read or written at any time. Given this sudden flash that "const" and "volatile" are just like "*", "[]" and "()" as far as declaration syntax goes, I was struck by the contrast between the nice, short, words to indicate pointer-ness, function-ness, etc and the terribly long words to indicate volatile-ness, etc. In the spirit of the language (with the kind assistance of Chris Torek, I hope he doesn't mind too much) I propose that we use "?" to indicate "volatile" and "=" to indicate "const". "Unsigned" is another of those long ones; that should be "+". Given this small overloading of the operators, the above declaration becomes +int ?*=csr=0172150; Of course, we don't need the "int", so it really becomes +?*=csr=0172150; It is also possible to solve the "how big is an char/short/int/long" controversy that occasionally pops up; obviously, we just use the number of bits as a declaration. Thus +?32*=csr=0172150; Of course, 32 is redundant on a VAX. David