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


Groups > comp.lang.c > #19023

Re: c99 and the lack of warnings when int operations are applied to a bool

From "BartC" <bc@freeuk.com>
Newsgroups comp.lang.c
Subject Re: c99 and the lack of warnings when int operations are applied to a bool
Date 2012-03-25 11:30 +0100
Organization A noiseless patient Spider
Message-ID <jkms56$eu$1@dont-email.me> (permalink)
References (2 earlier) <2btpm7tmttqo12hmj37jhj0db4vobf07i9@4ax.com> <jkitfb$80v$1@speranza.aioe.org> <9t4ctfF3fiU2@mid.individual.net> <jklite$bgd$1@speranza.aioe.org> <slrnjmto24.1v6r.willem@toad.stack.nl>

Show all headers | View raw


"Willem" <willem@toad.stack.nl> wrote in message
news:slrnjmto24.1v6r.willem@toad.stack.nl...
> jacob navia wrote:
> ) Yes it is, but I am speaking about arithmetic operations like
> ) multiplication and division.
> )
> ) Those operations have no meaning with bools.
> )
> )
> ) bool a,b;
> )
> ) a*b |  1  |  0 |
> ) ------------------
> ) 0   |  0  |  0 |
> ) 1   |  1  |  0 |
>
> In boolean arithmetic, multiplication is used as 'and'.
...
> And addition is used as 'or'.

Maybe. But 'and' and 'or' are also available, either as symbols (&& & || |)
or words.

And the symbol forms let you choose whether to use short-circuit evaluation
(&& ||) or not (& |).

Remember C also has small sets, in the form of integers (typically of 32 and 
64 bits). You can use bitwise operations (& |) on these sets, but trying to 
use * and + to do the same will result in something entirely different!

So it's best to apply the same thinking to individual bools.

(What *would* be useful would be int*bool, bool*double, etc. So A*bool is
either A, or zero. But a simple cast to int will achieve the same.)

> ) Mmmm substration looks like xor isn't it?
> )
> ) a-b |  1  |  0 |
> ) ------------------
> ) 0   |  1  |  0 |
> ) 1   |  0  |  1 |
>
> Hmm, 'xor' is usually denoted by a plus with a circle around it.

C has '^' (as well as 'xor'). However, subtraction is another integer 
operation that makes little sense for sets. A more useful notion of 
subtract, applied to individual bools, might be:

A B  A-B
--------
0 0  0
0 1  0
1 0  1
1 1  0

In an actual set, this would subtract those elements of B that also exist in 
A. (This is equivalent to ((A or B) xor B).) A normal subtraction won't 
work. Another reason to keep bool operations distinct.

-- 
Bartc

 

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


Thread

c99 and the lack of warnings when int operations are applied to a bool mathog <dmathog@gmail.com> - 2012-03-23 08:40 -0700
  Re: c99 and the lack of warnings when int operations are applied to a bool James Kuyper <jameskuyper@verizon.net> - 2012-03-23 12:07 -0400
  Re: c99 and the lack of warnings when int operations are applied to a bool jacob navia <jacob@spamsink.net> - 2012-03-23 21:45 +0100
    Re: c99 and the lack of warnings when int operations are applied to a bool Robert Wessel <robertwessel2@yahoo.com> - 2012-03-23 17:17 -0500
      Re: c99 and the lack of warnings when int operations are applied to a bool jacob navia <jacob@spamsink.net> - 2012-03-23 23:29 +0100
        Re: c99 and the lack of warnings when int operations are applied   to a bool Ian Collins <ian-news@hotmail.com> - 2012-03-24 11:48 +1300
          Re: c99 and the lack of warnings when int operations are applied   to a bool jacob navia <jacob@spamsink.net> - 2012-03-24 23:47 +0100
            Re: c99 and the lack of warnings when int operations are applied   to a bool Willem <willem@toad.stack.nl> - 2012-03-25 09:05 +0000
              Re: c99 and the lack of warnings when int operations are applied   to a bool "BartC" <bc@freeuk.com> - 2012-03-25 11:30 +0100
                Re: c99 and the lack of warnings when int operations are applied   to a bool Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-03-25 21:05 +0100
                Re: c99 and the lack of warnings when int operations are applied   to a bool Lowell Gilbert <lgusenet@be-well.ilk.org> - 2012-03-25 16:15 -0400
                Re: c99 and the lack of warnings when int operations are applied   to a bool Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-03-25 22:14 +0100
                Re: c99 and the lack of warnings when int operations are applied   to a bool James Kuyper <jameskuyper@verizon.net> - 2012-03-25 23:46 -0400
                Re: c99 and the lack of warnings when int operations are applied to a bool Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-03-26 12:05 +0100
                Re: c99 and the lack of warnings when int operations are applied to a bool Lowell Gilbert <lgusenet@be-well.ilk.org> - 2012-03-26 15:22 -0400
              Re: c99 and the lack of warnings when int operations are applied to a bool Gareth Owen <gwowen@gmail.com> - 2012-03-25 11:44 +0100
                Re: c99 and the lack of warnings when int operations are applied to a bool Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-03-25 13:06 +0100
            Re: c99 and the lack of warnings when int operations are applied to a bool Tim Rentsch <txr@alumni.caltech.edu> - 2012-03-27 11:12 -0700
        Re: c99 and the lack of warnings when int operations are applied to a bool Robert Wessel <robertwessel2@yahoo.com> - 2012-03-24 01:15 -0500
          Re: c99 and the lack of warnings when int operations are applied to a bool jacob navia <jacob@spamsink.net> - 2012-03-24 23:29 +0100
    Re: c99 and the lack of warnings when int operations are applied to a bool mathog <dmathog@gmail.com> - 2012-03-27 09:53 -0700
      Re: c99 and the lack of warnings when int operations are applied to a bool Keith Thompson <kst-u@mib.org> - 2012-03-27 11:07 -0700
      Re: c99 and the lack of warnings when int operations are applied to a bool James Kuyper <jameskuyper@verizon.net> - 2012-03-27 14:16 -0400
      Re: c99 and the lack of warnings when int operations are applied to a bool Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-04-26 07:57 -0400
        Re: c99 and the lack of warnings when int operations are applied to a bool jacob navia <jacob@spamsink.net> - 2012-04-26 14:08 +0200
        Re: c99 and the lack of warnings when int operations are applied to a bool James Kuyper <jameskuyper@verizon.net> - 2012-04-26 09:09 -0400
          Re: c99 and the lack of warnings when int operations are applied to a bool Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-04-26 21:29 -0400
            Re: c99 and the lack of warnings when int operations are applied to a bool James Kuyper <jameskuyper@verizon.net> - 2012-04-26 21:58 -0400
              Re: c99 and the lack of warnings when int operations are applied to a bool Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-04-26 22:32 -0400
                Re: c99 and the lack of warnings when int operations are applied to a bool James Kuyper <jameskuyper@verizon.net> - 2012-04-27 06:31 -0400
                Re: c99 and the lack of warnings when int operations are applied to a bool ImpalerCore <jadill33@gmail.com> - 2012-04-27 08:31 -0700

csiph-web