Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: isspace() executes without ctype header? Date: Wed, 14 Jun 2017 13:06:33 -0700 Organization: None to speak of Lines: 31 Message-ID: References: <65b55827-2e50-474e-8b47-a5d70747b53b@googlegroups.com> <48dce15f-c200-4b79-9f3e-3007391a134c@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: mx02.eternal-september.org; posting-host="96bbf95725af2559ab0735ee54475e20"; logging-data="3357"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Is35z3VtqLYwglzEpPMM4" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:9U3vFx0uL/cdTIFIk5hSOTGCwSY= sha1:7QaI3B6qPs7tbm2IFnq5lTMhZHo= Xref: csiph.com comp.lang.c:112220 supercat@casperkitty.com writes: > On Wednesday, June 14, 2017 at 2:03:52 PM UTC-5, Keith Thompson wrote: >> Both cman74.pdf and cman.pdf (from 1975, I think) says that char >> arguments are promoted to int, and float arguments to double. >> (char, int, float, and double were the only numeric types.) >> No other conversions are specified. > > The layout of passed arguments was effectively documented by the sample > printf function, and there were no aliasing rules. I will grant that it > is unclear whether implementations would have been expected to ensure that > a memcpy-style function could be invoked without requiring a caller-side > cast, but I don't recall anything in that manual that would suggest that > such a cast would be needed. The sample printf implementation in cman.pdf accepts arguments of types int, double, and char* (the latter points to a string for "%s"). The code that handles the arguments increments a pointer to int for int arguments, a pointer to double for double arguments, and a pointer to char* for char* arguments. It certainly assumes that arguments are allocated sequentially and in order, but I see no assumptions about the representations of different pointer types. And it clearly says, "It should be evident, though, that such techniques are implementation dependent." [...] -- Keith Thompson (The_Other_Keith) kst-u@mib.org Working, but not speaking, for JetHead Development, Inc. "We must do something. This is something. Therefore, we must do this." -- Antony Jay and Jonathan Lynn, "Yes Minister"