Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #43315

Re: Updating C default type

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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