Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Updating C default type |
| Date | 2014-04-22 10:26 -0700 |
| Organization | None to speak of |
| Message-ID | <lnioq1xokt.fsf@nuthaus.mib.org> (permalink) |
| References | <lj66ho$8fg$1@speranza.aioe.org> |
Raj Pashwar <raj121190@hotmail.NOSPAM.com> writes:
> We know, that C was created when computers had poor CPU power, this led
> to many design decisions for C.
>
> Many of these now, are out of date, because even small microprocessors,
> have comparatively very powerful CPUs comparing to the 1970s.
>
> One good example, is the use of "int" as the default type. Today working
> with floating point operands is NOT expensive for modern CPUs. A "double"
> has much bigger range and precision than int. So a very easy improvement
> to C, will be to make return types for most standard functions, into
> "double".
>
> I.E. main() can return double, malloc() can take a double argument, ETC.
>
> Note, that a double can hold any int value, so any old code will be
> portable easily, therefore NO reason not to implement this improvement
> ASAP.
There is no "default type" in C. Certainly a lot of functions return
int, but plenty return other types. Ideally, each returns the most
appropriate type for its semantics. In many cases (perhaps most),
that happens to be an integer type.
There is no guarantee that double can hold all any int value.
I've worked on systems where int and double are both 64 bits, and
INT_MAX, for example, could not be stored in a double without loss
of information.
Floating-point types suffer from rounding errors. Suppose exit(1)
indicates that the program failed. What does exit(0.999999) mean?
malloc() takes a size_t argument, where size_t is an unsigned integer
type able to hold the size of any allocatable object. On a 64-bit
system, size_t is likely to be 64 bits, and to be able to store
values that double cannot. Exactly what benefit would making
malloc() take a double argument produce? What would malloc(3.5) do?
Integer division truncates. If I divide an integer value by 2,
I expect to get a truncated integer result, and I write code that
depends on this. Are you going to pay me for time it takes to
adjust my code so it continues to work?
C is commonly used on small (or not so small) embedded systems,
some of which don't have hardware floating-point support.
I agree that your suggested change should be implemented as soon as
possible -- i.e., never.
--
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
Updating C default type Raj Pashwar <raj121190@hotmail.NOSPAM.com> - 2014-04-22 16:48 +0000
Re: Updating C default type jacob navia <jacob@spamsink.net> - 2014-04-22 18:59 +0200
Re: Updating C default type Raj Pashwar <raj121190@hotmail.NOSPAM.com> - 2014-04-22 17:13 +0000
Re: Updating C default type Keith Thompson <kst-u@mib.org> - 2014-04-22 11:59 -0700
Re: Updating C default type Kaz Kylheku <kaz@kylheku.com> - 2014-04-22 19:12 +0000
Re: Updating C default type jacob navia <jacob@spamsink.net> - 2014-04-25 19:31 +0200
Re: Updating C default type Stephen Sprunk <stephen@sprunk.org> - 2014-04-22 15:41 -0500
Re: Updating C default type "BartC" <bc@freeuk.com> - 2014-04-22 21:47 +0100
Re: Updating C default type Ken Brody <kenbrody@spamcop.net> - 2014-04-24 12:25 -0400
Re: Updating C default type Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-04-24 10:32 -0700
Re: Updating C default type glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-04-24 20:17 +0000
Re: Updating C default type glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-04-24 21:03 +0000
Re: Updating C default type Gareth Owen <gwowen@gmail.com> - 2014-04-22 19:12 +0100
Re: Updating C default type Keith Thompson <kst-u@mib.org> - 2014-04-22 10:26 -0700
Re: Updating C default type Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-04-22 10:28 -0700
Re: Updating C default type glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-04-22 18:20 +0000
Re: Updating C default type glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-04-22 19:09 +0000
Re: Updating C default type James Kuyper <jameskuyper@verizon.net> - 2014-04-22 15:35 -0400
Re: Updating C default type James Kuyper <jameskuyper@verizon.net> - 2014-04-22 15:38 -0400
Re: Updating C default type Kaz Kylheku <kaz@kylheku.com> - 2014-04-22 19:54 +0000
Re: Updating C default type glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-04-22 21:27 +0000
Re: Updating C default type "BartC" <bc@freeuk.com> - 2014-04-22 23:08 +0100
Re: Updating C default type Ben Bacarisse <ben.usenet@bsb.me.uk> - 2014-04-22 22:03 +0100
Re: Updating C default type Thomas Jahns <jahns@idontlikespam.dkrz.de> - 2014-04-23 09:59 +0200
Re: Updating C default type David Thompson <dave.thompson2@verizon.net> - 2014-05-25 16:44 -0400
Re: Updating C default type glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-05-26 05:48 +0000
Re: Updating C default type "Osmium" <r124c4u102@comcast.net> - 2014-04-22 14:01 -0500
Re: Updating C default type Quentin Pope <qp19433@hotmail.NOSPAM.com> - 2014-04-23 16:57 +0000
Re: Updating C default type James Kuyper <jameskuyper@verizon.net> - 2014-04-23 13:13 -0400
Re: Updating C default type Kaz Kylheku <kaz@kylheku.com> - 2014-04-23 18:02 +0000
Re: Updating C default type Keith Thompson <kst-u@mib.org> - 2014-04-23 11:33 -0700
Re: Updating C default type Kaz Kylheku <kaz@kylheku.com> - 2014-04-22 19:08 +0000
Re: Updating C default type Ben Bacarisse <ben.usenet@bsb.me.uk> - 2014-04-22 22:08 +0100
Re: Updating C default type "BartC" <bc@freeuk.com> - 2014-04-22 22:19 +0100
Re: Updating C default type Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-04-22 14:13 -0700
Re: Updating C default type Stephen Sprunk <stephen@sprunk.org> - 2014-04-23 11:55 -0500
Re: Updating C default type Keith Thompson <kst-u@mib.org> - 2014-04-23 10:55 -0700
Re: Updating C default type Robert Wessel <robertwessel2@yahoo.com> - 2014-04-24 00:03 -0500
Re: Updating C default type Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-04-23 22:37 -0700
Re: Updating C default type glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-04-24 12:05 +0000
Re: Updating C default type gordonb.ez7sl@burditt.org (Gordon Burditt) - 2014-04-25 06:11 -0500
Re: Updating C default type James Kuyper <jameskuyper@verizon.net> - 2014-04-25 08:48 -0400
Re: Updating C default type Stephen Sprunk <stephen@sprunk.org> - 2014-04-22 15:30 -0500
Re: Updating C default type ralph <nt_consulting@yahoo.com> - 2014-04-22 23:18 -0500
Re: Updating C default type Ken Brody <kenbrody@spamcop.net> - 2014-04-24 12:28 -0400
Re: Updating C default type gordonb.oztxz@burditt.org (Gordon Burditt) - 2014-04-24 23:50 -0500
Re: Updating C default type James Kuyper <jameskuyper@verizon.net> - 2014-04-25 08:41 -0400
Re: Updating C default type Hans Vlems <hvlems@freenet.de> - 2014-05-25 23:57 -0700
Re: Updating C default type Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-05-26 01:55 -0700
Re: Updating C default type Ben Bacarisse <ben.usenet@bsb.me.uk> - 2014-05-26 13:01 +0100
Re: Updating C default type Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-05-26 13:12 -0700
Re: Updating C default type Ben Bacarisse <ben.usenet@bsb.me.uk> - 2014-05-26 22:31 +0100
Re: Updating C default type Ben Bacarisse <ben.usenet@bsb.me.uk> - 2014-05-26 23:55 +0100
Re: Updating C default type Keith Thompson <kst-u@mib.org> - 2014-05-26 17:11 -0700
Re: Updating C default type James Kuyper <jameskuyper@verizon.net> - 2014-05-27 07:54 -0400
csiph-web