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


Groups > comp.lang.c > #43309

const or constant?

From jacob navia <jacob@spamsink.net>
Newsgroups comp.lang.c
Subject const or constant?
Date 2014-04-22 18:58 +0200
Organization lccwin
Message-ID <lj6729$a10$1@speranza.aioe.org> (permalink)

Show all headers | View raw


After reading some of the contrbutions to the "constant strings" thread, 
I think that what is needed is a clarification of the underlying issues.

There are TWO "uses" of const:

1) Declaring that a function will not modify its arguments
2) Declaring that an object resides in ROM (read only memory)

The first one is tied to a *scope*. It says that within a certain scope, 
no modifications are done to some object. I would propose that we name 
this property "constant" and we would declare:

char *strchr(constant char *buffer, int searchedChar);

This means: "The strchr functions receives a buffeer that will NOT be 
modified within the scope of the function". This implies that inner 
scopes are required to maintain this feature. It means also that when we 
exitthe scope where this "constant" declaration is done, the object 
becomes writable again. Hence it is normal that strchr returns a *plain* 
char pointer. "constant" objects can't be returned as constant.

The second meaning of const is the usual one and it is tied to an 
*object* not a scope. It means that the object can't be modified at 
*any* scope, it is an intrinsic property of the object.

In my opinion many problems with "const" would disappear if we 
distinguish between these two usages of const.

Feedback welcome.

Back to comp.lang.c | Previous | NextNext in thread | Find similar | Unroll thread


Thread

const or constant? jacob navia <jacob@spamsink.net> - 2014-04-22 18:58 +0200
  Re: const or constant? "Bill Cunningham" <nospam@nspam.invalid> - 2014-04-22 14:13 -0400
    Re: const or constant? Barry Schwarz <schwarzb@dqel.com> - 2014-04-22 15:59 -0700
  Re: const or constant? jt@toerring.de (Jens Thoms Toerring) - 2014-04-22 21:26 +0000
    Re: const or constant? James Kuyper <jameskuyper@verizon.net> - 2014-04-22 17:56 -0400
      Re: const or constant? Keith Thompson <kst-u@mib.org> - 2014-04-22 15:32 -0700
        Re: const or constant? James Kuyper <jameskuyper@verizon.net> - 2014-04-23 08:57 -0400
          Re: const or constant? David Brown <david.brown@hesbynett.no> - 2014-04-23 15:27 +0200
            Re: const or constant? Keith Thompson <kst-u@mib.org> - 2014-04-23 08:34 -0700
              Re: const or constant? David Brown <david.brown@hesbynett.no> - 2014-04-24 08:50 +0200
                Re: const or constant? James Kuyper <jameskuyper@verizon.net> - 2014-04-24 07:58 -0400
                Re: const or constant? David Brown <david.brown@hesbynett.no> - 2014-04-24 14:19 +0200
                Re: const or constant? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-04-24 21:40 +0000
                Re: const or constant? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-04-25 01:05 -0700
          Re: const or constant? "BartC" <bc@freeuk.com> - 2014-04-23 21:38 +0100
      Re: const or constant? jacob navia <jacob@spamsink.net> - 2014-04-23 00:51 +0200
    Re: const or constant? jacob navia <jacob@spamsink.net> - 2014-04-23 00:47 +0200
  Re: const or constant? Walter Banks <walter@bytecraft.com> - 2014-04-22 18:00 -0400
  Re: const or constant? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2014-04-22 23:12 +0100
    Re: const or constant? jacob navia <jacob@spamsink.net> - 2014-04-23 01:00 +0200
      Re: const or constant? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2014-04-23 14:48 +0100
        Re: const or constant? Keith Thompson <kst-u@mib.org> - 2014-04-23 08:40 -0700
          Re: const or constant? jacob navia <jacob@spamsink.net> - 2014-04-23 21:49 +0200
            Re: const or constant? Kaz Kylheku <kaz@kylheku.com> - 2014-04-23 20:11 +0000
            [OT] Killfiles (was Re: const or constant?) Keith Thompson <kst-u@mib.org> - 2014-04-23 14:49 -0700
              Re: [OT] Killfiles (was Re: const or constant?) Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-04-23 22:22 -0700
    Re: const or constant? James Kuyper <jameskuyper@verizon.net> - 2014-04-23 09:09 -0400
  Re: const or constant? Ian Collins <ian-news@hotmail.com> - 2014-04-24 09:35 +1200
    Re: const or constant? Ian Collins <ian-news@hotmail.com> - 2014-04-24 10:06 +1200
      Re: const or constant? Ian Collins <ian-news@hotmail.com> - 2014-04-24 10:52 +1200

csiph-web