consistency in declaration
david.f.prosser
dfp at cbnewsl.ATT.COM
Fri Jun 16 23:23:29 AEST 1989
In article <263 at maytag.waterloo.edu> giguere at aries5.waterloo.edu (Eric Giguere) writes:
}In article <64 at BLEKUL11.BITNET> SAAAA04 at BLEKUL11.BITNET writes:
}>To my surprise the following happened with the waterloo C compiler (for VM/CMS)
}
}Wow! An IBM mainframe user reading this group...
}
}>it refuses:
}
}>void foo(int , int y);
}
}>but (of course) accepts:
}
}>void foo(int x, int y);
}>void foo(int , int);
}
}>Do I have to be consistent ? Or is this a bug in the compiler ?
}
}It's not a bug.... it's a feature. Seriously, the ANSI specs state that
}a function prototype can accept types or types with IDs but not both
}in the same declaration. So, yes, you do have to be consistent.
}
}(I should know, I spent a lot of time debugging all the ANSI stuff we put
}into the compiler...)
}
}Eric Giguere 268 Phillip St #CL-46
}For the curious: it's French ("jee-gair") Waterloo, Ontario N2L 6G9
}Bitnet : GIGUERE at WATCSG (519) 746-6565
}Internet: giguere at aries5.UWaterloo.ca "Nothing but urges from HELL!!"
Not quite. The pANS requires that there be identifiers present for all
prototype parameters only for a function's definition. If it's just a
declaration, one can arbitrarily include or exclude the identifiers.
It would have been nice to be able to exclude identifiers even in function
definitions as that would be a linguistic way of stating that the parameter
is unused. C++ includes this feature, but the X3J11 technical committee
didn't buy into it.
Dave Prosser ...not an official X3J11 answer...
More information about the Comp.lang.c
mailing list