public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andries Brouwer <aeb@veritas.com>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] removal of "static foo = 0"
Date: Sat, 25 Nov 2000 23:46:24 +0100	[thread overview]
Message-ID: <20001125234624.A7049@veritas.com> (raw)
In-Reply-To: <20001125211939.A6883@veritas.com> <200011252211.eAPMBIo21200@gondor.apana.org.au>
In-Reply-To: <200011252211.eAPMBIo21200@gondor.apana.org.au>; from herbert@gondor.apana.org.au on Sun, Nov 26, 2000 at 09:11:18AM +1100

On Sun, Nov 26, 2000 at 09:11:18AM +1100, Herbert Xu wrote:

> No information is lost.

Do I explain things so badly? Let me try again.
The difference between

  static int a;

and

  static int a = 0;

is the " = 0". The compiler may well generate the same code,
but I am not talking about the compiler. I am talking about
the programmer. This " = 0" means (to me, the programmer)
that the correctness of my program depends on this initialization.
Its absense means (to me) that it does not matter what initial
value the variable has.

This is a useful distinction. It means that if the program

  static int a;

  int main() {
	  /* do something */
  }

is used as part of a larger program, I can just rename main
and get

  static int a;

  int do_something() {
	  ...
  }

But if the program

  static int a = 0;

  int main() {
	  /* do something */
  }

is used as part of a larger program, it has to become

  static int a;

  int do_something() {
	  a = 0;
	  ...
  }


You see that I, in my own code, follow a certain convention
where presence or absence of assignments means something
about the code. If now you change "static int a = 0;"
into "static int a;" and justify that by saying that it
generates the same code, then I am unhappy, because now
if I turn main() into do_something() I either get a buggy
program, or otherwise I have to read the source of main()
again to see which variables need initialisation.

In a program source there is information for the compiler
and information for the future me. Removing the " = 0"
is like removing comments. For the compiler the information
remains the same. For the programmer something is lost.

Andries
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  reply	other threads:[~2000-11-25 23:16 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-11-25 20:19 [PATCH] removal of "static foo = 0" Andries Brouwer
2000-11-25 21:07 ` Russell King
2000-11-25 21:29   ` Andries Brouwer
2000-11-26  1:19     ` Russell King
2000-11-25 22:11 ` Herbert Xu
2000-11-25 22:46   ` Andries Brouwer [this message]
2000-11-25 22:53     ` James A Sutherland
2000-11-25 23:55       ` Tim Waugh
2000-11-26  3:10         ` James A Sutherland
2000-11-26 10:37         ` Tigran Aivazian
2000-11-26 14:52           ` Philipp Rumpf
2000-11-28  0:01           ` Peter Samuelson
2000-11-27  4:00         ` Michael Meissner
2000-11-25 23:02     ` Jeff Garzik
2000-11-26  2:08       ` Andries Brouwer
2000-11-26  9:22         ` Martin Mares
2000-11-25 23:33     ` Herbert Xu
2000-11-27 10:03     ` Helge Hafting
2000-11-27 20:33     ` Albert D. Cahalan
2000-11-27 22:57       ` Russell King
2000-11-29  1:46         ` Albert D. Cahalan
2000-11-29  3:21           ` Peter Samuelson
2000-11-29  7:25           ` Russell King
2000-11-25 22:27 ` Tigran Aivazian
2000-11-26  1:32   ` Andries Brouwer
2000-11-26  2:11     ` Georg Nikodym
2000-11-26  4:25       ` Alan Cox
2000-11-26  5:01         ` John Alvord
2000-11-26  5:10           ` Andre Hedrick
2000-11-26  6:22             ` Keith Owens
2000-11-26  6:28               ` Andre Hedrick
2000-11-26 10:43           ` Tigran Aivazian
2000-11-26 10:52           ` Tigran Aivazian
2000-11-24  7:47             ` Pavel Machek
2000-11-26 14:32             ` bert hubert
2000-11-26 10:52           ` Rogier Wolff
2000-11-26 14:13         ` Philipp Rumpf
2000-11-26 15:19         ` Georg Nikodym
2000-11-26 20:47         ` H. Peter Anvin
2000-11-27 21:12           ` Kai Henningsen
2000-11-26  6:21     ` Werner Almesberger
  -- strict thread matches above, loose matches on Subject: below --
2000-11-26 15:15 Adam J. Richter
2000-11-26 17:53 Elmer Joandi
2000-11-26 18:36 ` Alexander Viro
2000-11-26 19:11   ` Elmer Joandi
2000-11-26 22:49 ` Rogier Wolff
2000-11-27  5:56 Adam J. Richter
2000-11-27  8:41 ` Werner Almesberger
2000-11-27  8:39   ` David S. Miller
2000-11-27  9:08     ` Werner Almesberger
2000-11-27 17:21     ` Andrea Arcangeli
2000-11-27 17:36       ` Michael Meissner
2000-11-27 19:06         ` Andrea Arcangeli
2000-11-27 19:34           ` Richard B. Johnson
2000-11-28  0:28             ` Andrea Arcangeli
2000-11-28 11:25               ` Horst von Brand
2000-11-28  3:10           ` kumon
2000-11-28  3:28             ` Andrea Arcangeli
2000-11-28  3:35               ` Alexander Viro
2000-11-28  4:15                 ` Michael Meissner
2000-11-28  9:55                 ` Andreas Schwab
2000-11-28 15:16                   ` Andrea Arcangeli
2000-11-28 16:09                     ` Andreas Schwab
2000-11-28 19:29                       ` Andrea Arcangeli
2000-11-28 16:44                     ` Michael Meissner
2000-11-27 21:27         ` Marcus Sundberg
2000-11-27 18:11       ` Richard B. Johnson
2000-11-27 18:01   ` Michael Meissner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20001125234624.A7049@veritas.com \
    --to=aeb@veritas.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox