Path: utzoo!yunexus!ists!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!swrinde!gem.mps.ohio-state.edu!uakari.primate.wisc.edu!aplcen!haven!adm!smoke!gwyn From: gwyn@smoke.BRL.MIL (Doug Gwyn) Newsgroups: comp.std.c Subject: Re: Qualified array or function types Message-ID: <11636@smoke.BRL.MIL> Date: 17 Nov 89 19:22:21 GMT Article-I.D.: smoke.11636 References: <11144@riks.csl.sony.co.jp> Reply-To: gwyn@brl.arpa (Doug Gwyn) Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 18 In article <11144@riks.csl.sony.co.jp> diamond@ws.sony.junet (Norman Diamond) writes: >Section 3.5.3, page 65 lines 23 to 25, cite array types or function >types that include type qualifiers. Footnote 65 says that these can >only occur through the use of typedefs. Footnote 65 seems to be false. >I cannot find any Constraint or Semantic "shall" (or even "can") that >prevents > const a[3]; That's not an example of what Footnote 65 is referring to; that's an ordinary application of the type qualifier "const" to the member type (int), not to the array type, and the qualifier is valid there. However, the attempted declaration int a const [3]; is disallowed by the grammar, and that is what Footnote 65 is discussing -- since the grammar disallows this, how COULD one have the specification of an array (similarly, function) type (as opposed to some subtype) include any type qualifiers? Footnote 65 answers that question.