Re: else ladders practice

Liste des GroupesRevenir à cl c  
Sujet : Re: else ladders practice
De : bc (at) *nospam* freeuk.com (Bart)
Groupes : comp.lang.c
Date : 05. Nov 2024, 16:03:54
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vgdc4q$1ikja$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14
User-Agent : Mozilla Thunderbird
On 05/11/2024 12:42, Waldek Hebisch wrote:
Bart <bc@freeuk.com> wrote:
>
Then we disagree on what 'multi-way' select might mean. I think it means
branching, even if notionally, on one-of-N possible code paths.
 OK.
 
The whole construct may or may not return a value. If it does, then one
of the N paths must be a default path.
  You need to cover all input values.  This is possible when there
is reasonably small number of possibilities.  For example, switch on
char variable which covers all possible values does not need default
path.  Default is needed only when number of possibilities is too
large to explicitely give all of them.  And some languages allow
ranges, so that you may be able to cover all values with small
number of ranges.
 
What's easier to implement in a language: to have a conditional need for an 'else' branch, which is dependent on the compiler performing some arbitrarily complex levels of analysis on some arbitrarily complex set of expressions...
...or to just always require 'else', with a dummy value if necessary?
Even if you went with the first, what happens if the compiler can't guarantee that all values of a selector are covered; should it report that, or say nothing?
What happens if you do need 'else', but later change things so all bases are covered; will the compiler report it as being unnecesary, so that you remove it?
Now, C doesn't have such a feature to test out (ie. that is a construct with an optional 'else' branch, the whole of which returns a value). The nearest is function return values:
   int F(int n) {
       if (n==1) return 10;
       if (n==2) return 20;
   }
Here, neither tcc not gcc report that you might run into the end of the function. It will return garbage if called with anything other than 1 or 2.
gcc will say something with enough warning levels (reaches end of non-void function). But it will say the same here:
   int F(unsigned char c) {
       if (c<128) return 10;
       if (c>=128) return 20;
   }

Date Sujet#  Auteur
5 Nov 24 * Re: else ladders practice141Waldek Hebisch
5 Nov 24 +- Re: else ladders practice1fir
5 Nov 24 +* Re: else ladders practice24David Brown
5 Nov 24 i+* Re: else ladders practice17Waldek Hebisch
5 Nov 24 ii`* Re: else ladders practice16David Brown
6 Nov 24 ii +* Re: else ladders practice8Bart
6 Nov 24 ii i+* Re: else ladders practice5Kaz Kylheku
6 Nov 24 ii ii`* Re: else ladders practice4Bart
8 Nov 24 ii ii +- Re: else ladders practice1Janis Papanagnou
9 Nov 24 ii ii `* Re: else ladders practice2fir
10 Nov 24 ii ii  `- Re: else ladders practice1Janis Papanagnou
6 Nov 24 ii i+- Re: else ladders practice1David Brown
8 Nov 24 ii i`- Re: else ladders practice1Janis Papanagnou
10 Nov 24 ii `* Re: else ladders practice7Waldek Hebisch
10 Nov 24 ii  `* Re: else ladders practice6David Brown
11 Nov 24 ii   `* Re: else ladders practice5Waldek Hebisch
12 Nov 24 ii    `* Re: else ladders practice4David Brown
15 Nov 24 ii     `* Re: else ladders practice3Waldek Hebisch
16 Nov 24 ii      `* Re: else ladders practice2David Brown
20 Nov 24 ii       `- Re: else ladders practice1Waldek Hebisch
5 Nov 24 i`* Re: else ladders practice6Bart
6 Nov 24 i `* Re: else ladders practice5David Brown
7 Nov 24 i  `* Re: else ladders practice4Bart
7 Nov 24 i   +- Re: else ladders practice1Bart
8 Nov 24 i   `* Re: else ladders practice2David Brown
8 Nov 24 i    `- Re: else ladders practice1Bart
5 Nov 24 `* Re: else ladders practice115Bart
5 Nov 24  +- Re: else ladders practice1David Brown
5 Nov 24  `* Re: else ladders practice113Waldek Hebisch
6 Nov 24   `* Re: else ladders practice112Bart
10 Nov 24    `* Re: else ladders practice111Waldek Hebisch
11 Nov 24     +* Re: else ladders practice109Bart
19 Nov 24     i+* Re: else ladders practice107Waldek Hebisch
19 Nov 24     ii`* Re: else ladders practice106Bart
19 Nov 24     ii +- Re: else ladders practice1Bart
19 Nov 24     ii +* Re: else ladders practice100Bart
20 Nov 24     ii i`* Re: else ladders practice99Waldek Hebisch
20 Nov 24     ii i `* Re: else ladders practice98Bart
20 Nov 24     ii i  +- Re: else ladders practice1Waldek Hebisch
20 Nov 24     ii i  +* Re: else ladders practice46Bart
22 Nov 24     ii i  i`* Re: else ladders practice45Waldek Hebisch
22 Nov 24     ii i  i +* Re: else ladders practice2Michael S
22 Nov 24     ii i  i i`- Re: else ladders practice1David Brown
22 Nov 24     ii i  i `* Re: else ladders practice42Bart
22 Nov 24     ii i  i  `* Re: else ladders practice41Waldek Hebisch
23 Nov 24     ii i  i   +* Re: else ladders practice4Bart
23 Nov 24     ii i  i   i`* Re: else ladders practice3Waldek Hebisch
23 Nov 24     ii i  i   i `* Re: else ladders practice2Bart
24 Nov 24     ii i  i   i  `- Re: else ladders practice1Waldek Hebisch
23 Nov 24     ii i  i   `* Re: else ladders practice36Bart
24 Nov 24     ii i  i    `* Re: else ladders practice35Waldek Hebisch
24 Nov 24     ii i  i     `* Re: else ladders practice34Bart
24 Nov 24     ii i  i      +* Re: else ladders practice2Bart
24 Nov 24     ii i  i      i`- Re: else ladders practice1Waldek Hebisch
24 Nov 24     ii i  i      `* Re: else ladders practice31Waldek Hebisch
24 Nov 24     ii i  i       `* Re: else ladders practice30Bart
24 Nov 24     ii i  i        +* Re: else ladders practice3Waldek Hebisch
24 Nov 24     ii i  i        i`* Re: else ladders practice2Bart
24 Nov 24     ii i  i        i `- Re: else ladders practice1Waldek Hebisch
24 Nov 24     ii i  i        `* Re: else ladders practice26Keith Thompson
24 Nov 24     ii i  i         +* Re: else ladders practice22Bart
24 Nov 24     ii i  i         i+* Re: else ladders practice19Keith Thompson
25 Nov 24     ii i  i         ii+* Re: else ladders practice14Bart
25 Nov 24     ii i  i         iii+* Re: else ladders practice2Keith Thompson
25 Nov 24     ii i  i         iiii`- Re: else ladders practice1Bart
25 Nov 24     ii i  i         iii+* Re: else ladders practice7Waldek Hebisch
25 Nov 24     ii i  i         iiii`* Re: else ladders practice6Bart
25 Nov 24     ii i  i         iiii `* Re: else ladders practice5Keith Thompson
25 Nov 24     ii i  i         iiii  `* Re: else ladders practice4Bart
25 Nov 24     ii i  i         iiii   `* Re: else ladders practice3Tim Rentsch
25 Nov 24     ii i  i         iiii    `* Re: else ladders practice2Keith Thompson
28 Nov 24     ii i  i         iiii     `- Re: else ladders practice1Tim Rentsch
25 Nov 24     ii i  i         iii+- Re: else ladders practice1David Brown
25 Nov 24     ii i  i         iii`* Re: else ladders practice3Bart
25 Nov 24     ii i  i         iii +- Re: else ladders practice1Keith Thompson
27 Nov 24     ii i  i         iii `- Re: else ladders practice1Waldek Hebisch
25 Nov 24     ii i  i         ii`* Re: else ladders practice4Michael S
25 Nov 24     ii i  i         ii `* Re: else ladders practice3David Brown
25 Nov 24     ii i  i         ii  `* Re: else ladders practice2Michael S
25 Nov 24     ii i  i         ii   `- Re: else ladders practice1David Brown
24 Nov 24     ii i  i         i`* Re: else ladders practice2Waldek Hebisch
25 Nov 24     ii i  i         i `- Re: else ladders practice1Bart
24 Nov 24     ii i  i         +- Re: else ladders practice1Waldek Hebisch
25 Nov 24     ii i  i         `* Re: else ladders practice2David Brown
25 Nov 24     ii i  i          `- Re: else ladders practice1Keith Thompson
20 Nov 24     ii i  +- Re: else ladders practice1Waldek Hebisch
20 Nov 24     ii i  +* Re: else ladders practice13David Brown
20 Nov 24     ii i  i`* Re: else ladders practice12Bart
21 Nov 24     ii i  i `* Re: else ladders practice11David Brown
21 Nov 24     ii i  i  +* Re: else ladders practice6Bart
21 Nov 24     ii i  i  i+* Re: else ladders practice2Bart
21 Nov 24     ii i  i  ii`- Re: else ladders practice1Bart
22 Nov 24     ii i  i  i`* Re: else ladders practice3Waldek Hebisch
22 Nov 24     ii i  i  i `* Re: else ladders practice2Bart
24 Nov 24     ii i  i  i  `- Re: else ladders practice1Waldek Hebisch
22 Nov 24     ii i  i  `* Re: else ladders practice4Bart
22 Nov 24     ii i  i   +- Re: else ladders practice1David Brown
22 Nov 24     ii i  i   `* Re: else ladders practice2Kaz Kylheku
23 Nov 24     ii i  i    `- Re: else ladders practice1David Brown
25 Nov 24     ii i  `* Re: else ladders practice36Tim Rentsch
25 Nov 24     ii i   `* Re: else ladders practice35Bart
19 Nov 24     ii `* Re: else ladders practice4Waldek Hebisch
19 Nov 24     i`- Re: else ladders practice1Mark Bourne
22 Nov 24     `- Re: else ladders practice1Bart

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal