• calcopiritus@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    1 month ago

    Can confirm. I have to do this all the time. Some coworkers just delete it, and I have to explain the situation every time when they see in the git blame that I put that semicolon there.

    As someone pointed out in another comment, in switch statements you should just start a new scope with {}. But in actual labels it’s just better to put a load-bearing semicolon. You don’t need to put it in another line though, I just put them like this:

    int main() {
        int *a = malloc(sizeof(*a));
        if (init_a(a) <= 0) {
            goto err;
        }
        do_something(a);
    err:;
        int ret = 0;
        if (a == NULL) {
            ret = -1;
        }
        free(a);
        return ret;
    }
    
    • Victor@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      1 month ago

      Is “case expr:” really a label? You could put anything in there, like “case 42:”. I don’t see a label, but maybe I don’t know what a label is in C.

  • treadful@lemmy.zip
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    What does assigning ... do in C? Is that just default type value or something?