Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!necntc!ima!haddock!karl From: karl@haddock.ISC.COM (Karl Heuer) Newsgroups: comp.lang.c Subject: Re: Some questions about ANSI C Message-ID: <936@haddock.ISC.COM> Date: Thu, 13-Aug-87 13:08:13 EDT Article-I.D.: haddock.936 Posted: Thu Aug 13 13:08:13 1987 Date-Received: Sat, 15-Aug-87 09:26:39 EDT References: <497@houxs.UUCP> <165600007@uiucdcsb> <6265@brl-smoke.ARPA> Reply-To: karl@haddock.ima.isc.com (Karl Heuer) Organization: Interactive Systems, Boston Lines: 33 In article <6265@brl-smoke.ARPA> gwyn@brl.arpa (Doug Gwyn) writes: >[Hex escapes, \xNNNN, may be arbitrarily long; thus a sequence like ESC B >cannot be written "\x1bB". Use "\x1b" "B",] or else you can write it using >an octal constant. I would prefer some way to forcibly terminate, perhaps "\x(1b)B". I hope the committee is still open to change on this issue. >>> Setjmp must be a macro. >I don't have the exact wording that's going into the draft, but I think the >problem is that the argument to setjmp() is being passed by name, which is >possible for macros but not for functions. (This is based on the traditional >implementation of a jmp_buf as an array, which does not behave the same as >other types as a typedef, coupled with the observation that some >implementations would be better off with a non-array for their jmp_bufs.) Can't such an implementation use a one-element array containing a struct? Or is there a more subtle problem here? >>> [agreed in principle] that parentheses should force grouping, >>> motion needed. >The problem is, the public keep complaining about unary + and/or the lack of >grouping for parens. I think X3J11 must have decided that the "as if" rule >still permits most ordinary regrouping ... Arghh. One reason I like the unary-plus idea is that it allows the programmer to distinguish between precedence control and evaluation order. It's a documentation aid. Also, I suspect that many compilers will zealously regroup even when the as-if rule does not strictly apply; the presence of an explicit marker -- be it unary-plus, a cast into volatile, or a re-overloading of the keyword "break" :-) -- can be used as a warning sign. Karl W. Z. Heuer (ima!haddock!karl or karl@haddock.isc.com), The Walking Lint