Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #112206
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: isspace() executes without ctype header? |
| Date | 2017-06-14 10:17 -0700 |
| Organization | None to speak of |
| Message-ID | <lnzidacwu3.fsf@kst-u.example.com> (permalink) |
| References | (2 earlier) <ohq8oe$mi3$1@dont-email.me> <kfno9tq7fpd.fsf@x-alumni2.alumni.caltech.edu> <ivd0B.96368$3k.53796@fx03.am4> <ln4lviecup.fsf@kst-u.example.com> <USd0B.212390$kd6.181170@fx33.am4> |
bartc <bc@freeuk.com> writes:
> On 14/06/2017 17:46, Keith Thompson wrote:
>> bartc <bc@freeuk.com> writes:
>> [...]
>>> I tried compiling this:
>>>
>>> int main(void){
>>> isspace(0);
>>> }
>>>
>>> I get no messages at all from either of the two tccs I have on Windows
>>> (0.9.26, 32- and 64-buit versions).
>>
>> That behavior is consistent with a conforming C90 compiler.
>>
>>> Same with isspace(0,0). Same with isspace("abc"). So it's not just
>>> assuming implicit int.
>>
>> Yes it is. The C90 implicit int rule assumes that an undeclared
>> function takes arguments of the (promoted) types in the call,
>> and returns int. (If that assumption is inconsistent with the
>> actual definition, as it is for isspace(0,0) and isspace("abc"),
>> the behavior is undefined.)
>
> In the second example, the argument type is char*, the assumed parameter
> type is int. Why doesn't it complain about pointer to int conversion? It
> will do so when the int parameter is properly declared.
No, there is no assumption that the parameter type is int.
C90 6.3.2.2:
If the expression that precedes the parenthesized argument list
in a function call consists solely of an identifier, and if
no declaration is visible for this identifier, the identifier
is implicitly declared exactly as if, in the innermost block
containing the function call, the declaration
extern int identifier () ;
appeared.
If the expression that denotes the called function has a type
that does not include a prototype, the integral promotions
are performed on each argument and arguments that have type
float are promoted to double. These are called the *default
argument promotions*. If the number of arguments does not agree
with the number of parameters, the behavior is undefined. If
the function is defined with a type that does not include a
prototype, and the types of the arguments after promotion are
not compatible with those of the parameters after promotion,
the behavior is undefined.
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
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"
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
isspace() executes without ctype header? DFS <nospam@dfs.com> - 2017-06-13 21:13 -0400
Re: isspace() executes without ctype header? Ian Collins <ian-news@hotmail.com> - 2017-06-14 13:20 +1200
Re: isspace() executes without ctype header? DFS <nospam@dfs.com> - 2017-06-13 21:33 -0400
Re: isspace() executes without ctype header? Ian Collins <ian-news@hotmail.com> - 2017-06-14 13:35 +1200
Re: isspace() executes without ctype header? DFS <nospam@dfs.com> - 2017-06-13 22:31 -0400
Re: isspace() executes without ctype header? Ian Collins <ian-news@hotmail.com> - 2017-06-14 14:40 +1200
Re: isspace() executes without ctype header? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-06-13 21:49 -0400
Re: isspace() executes without ctype header? Tim Rentsch <txr@alumni.caltech.edu> - 2017-06-13 19:20 -0700
Re: isspace() executes without ctype header? DFS <nospam@dfs.com> - 2017-06-13 23:04 -0400
Re: isspace() executes without ctype header? asetofsymbols@gmail.com - 2017-06-13 23:07 -0700
Re: isspace() executes without ctype header? Tim Rentsch <txr@alumni.caltech.edu> - 2017-06-14 08:26 -0700
Re: isspace() executes without ctype header? bartc <bc@freeuk.com> - 2017-06-14 17:29 +0100
Re: isspace() executes without ctype header? Keith Thompson <kst-u@mib.org> - 2017-06-14 09:46 -0700
Re: isspace() executes without ctype header? bartc <bc@freeuk.com> - 2017-06-14 17:54 +0100
Re: isspace() executes without ctype header? Keith Thompson <kst-u@mib.org> - 2017-06-14 10:17 -0700
Re: isspace() executes without ctype header? supercat@casperkitty.com - 2017-06-14 10:48 -0700
Re: isspace() executes without ctype header? Keith Thompson <kst-u@mib.org> - 2017-06-14 12:03 -0700
Re: isspace() executes without ctype header? supercat@casperkitty.com - 2017-06-14 12:48 -0700
Re: isspace() executes without ctype header? Keith Thompson <kst-u@mib.org> - 2017-06-14 13:06 -0700
Re: isspace() executes without ctype header? Tim Rentsch <txr@alumni.caltech.edu> - 2017-06-16 23:14 -0700
Re: isspace() executes without ctype header? bartc <bc@freeuk.com> - 2017-06-14 11:18 +0100
Re: isspace() executes without ctype header? Keith Thompson <kst-u@mib.org> - 2017-06-14 09:35 -0700
Re: isspace() executes without ctype header? bartc <bc@freeuk.com> - 2017-06-14 17:47 +0100
Re: isspace() executes without ctype header? supercat@casperkitty.com - 2017-06-14 10:19 -0700
Re: isspace() executes without ctype header? Keith Thompson <kst-u@mib.org> - 2017-06-14 10:29 -0700
Re: isspace() executes without ctype header? Keith Thompson <kst-u@mib.org> - 2017-06-14 10:21 -0700
Re: isspace() executes without ctype header? bartc <bc@freeuk.com> - 2017-06-14 19:12 +0100
Re: isspace() executes without ctype header? Keith Thompson <kst-u@mib.org> - 2017-06-14 12:12 -0700
Re: isspace() executes without ctype header? joel.rees@gmail.com - 2017-06-16 17:56 -0700
Re: isspace() executes without ctype header? supercat@casperkitty.com - 2017-06-17 10:20 -0700
Re: isspace() executes without ctype header? Robert Wessel <robertwessel2@yahoo.com> - 2017-06-18 00:25 -0500
Re: isspace() executes without ctype header? supercat@casperkitty.com - 2017-06-19 09:01 -0700
Re: isspace() executes without ctype header? Robert Wessel <robertwessel2@yahoo.com> - 2017-06-19 21:59 -0500
csiph-web