• eleijeep@piefed.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    19 hours ago

    goto is the standard way of performing error handling in C, since there is no exception system or destructor mechanism to free resources when they are going out of scope.

    • spartanatreyu@programming.dev
      link
      fedilink
      arrow-up
      7
      ·
      1 day ago

      Gotos being bad falls in the it depends category.

      Bad:

      • When you think you’re going to do something clever (when you should probably be reaching for a different tool that you may or may not know exists)

      Good:

      • When in the form of a jump that’s was written by a sound compiler
      • When learning how assembly works
      • When working on codecs and you’re actually going to spend the many hours to get everything right.
      • Labelled breaks in nested for loops
      • Embedded systems when resources are constrained
      • When writing debuggers
      • When writing anti-cheat systems
      • And finally, when you actually need to because you’re manually managing things (e.g. you’re writing a kernel)