Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. what's the point? do{...}while(FALSE);

what's the point? do{...}while(FALSE);

Scheduled Pinned Locked Moved C / C++ / MFC
question
15 Posts 8 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Like2Byte

    I've come across some code that is structured like this: do { //stuff... } while(FALSE); What's the difference between that and just doing the items that are in stuff WITHOUT the do-while(FALSE) "loop"?:confused:

    L Offline
    L Offline
    led mike
    wrote on last edited by
    #4

    Maybe they were trying to exercise the compilers optimization capabilities?

    led mike

    L 1 Reply Last reply
    0
    • L led mike

      Maybe they were trying to exercise the compilers optimization capabilities?

      led mike

      L Offline
      L Offline
      Like2Byte
      wrote on last edited by
      #5

      Just figured it out. Interspersed within the {..} are #define'd a macro (ESCAPEIF(returnvalue) calls. It's defined to 'break' if an error occurrs. At the end of the function is the cleanup thus: do { ret = foo(); //returns a '1' BREAKONERROR(ret); } WHILE(FALSE); //perform cleanup (ie: release memory where needed) Guess I should have followed the white rabbit a little more ..or took the bluepill.

      C 1 Reply Last reply
      0
      • L Like2Byte

        I've come across some code that is structured like this: do { //stuff... } while(FALSE); What's the difference between that and just doing the items that are in stuff WITHOUT the do-while(FALSE) "loop"?:confused:

        W Offline
        W Offline
        Waldermort
        wrote on last edited by
        #6

        It's better than using the ugly GOTO method. In a loop you have the option of using break and continue. In this case it's a loop to be run once, unless directed to do otherwise.

        Waldermort

        L N 2 Replies Last reply
        0
        • L led mike

          CPallini wrote:

          the Coding Orrors forum.

          What means "Coding Orros"? I know what Coding Oreos[^] are but never heard of Coding Orros.

          led mike

          E Offline
          E Offline
          El Corazon
          wrote on last edited by
          #7

          led mike wrote:

          What means "Coding Orros"?

          Coding Orros refers to members of a family tree: http://www.genealogytoday.com/surname/finder.mv?Surname=Orros[^] who are better at making pizza than coding. http://www.yellowbot.com/orros-pizza-grill-saint-johns-fl.html[^] although obvious to us, it was not obvious to them. After seeing the pizza examples in head-first-design-patterns, you begin to realize how they thought that any pizza maker is automatically a programmer. As you see, the results of pizza makers writing software is extra cheese in our code. :-D

          _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

          1 Reply Last reply
          0
          • L led mike

            CPallini wrote:

            the Coding Orrors forum.

            What means "Coding Orros"? I know what Coding Oreos[^] are but never heard of Coding Orros.

            led mike

            C Offline
            C Offline
            CPallini
            wrote on last edited by
            #8

            And I even made it bold. :-O :sigh:

            If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
            This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

            L 1 Reply Last reply
            0
            • C CPallini

              And I even made it bold. :-O :sigh:

              If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
              This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

              L Offline
              L Offline
              led mike
              wrote on last edited by
              #9

              CPallini wrote:

              And I even made it bold.

              I've always said "That Pallini is nothing if not bold"  :-D

              led mike

              1 Reply Last reply
              0
              • W Waldermort

                It's better than using the ugly GOTO method. In a loop you have the option of using break and continue. In this case it's a loop to be run once, unless directed to do otherwise.

                Waldermort

                L Offline
                L Offline
                led mike
                wrote on last edited by
                #10

                WalderM wrote:

                It's better than using the ugly GOTO method.

                better how? If you mean more readable I would argue that at best it is indistinguishably better.

                led mike

                1 Reply Last reply
                0
                • W Waldermort

                  It's better than using the ugly GOTO method. In a loop you have the option of using break and continue. In this case it's a loop to be run once, unless directed to do otherwise.

                  Waldermort

                  N Offline
                  N Offline
                  Nemanja Trifunovic
                  wrote on last edited by
                  #11

                  WalderMt's better than using the ugly GOTO method.

                  I agree that this code is most probably the replacement for goto, but dissagree that it is better. It is even worse, because it hides the intention.

                  Programming Blog utf8-cpp

                  1 Reply Last reply
                  0
                  • L Like2Byte

                    Just figured it out. Interspersed within the {..} are #define'd a macro (ESCAPEIF(returnvalue) calls. It's defined to 'break' if an error occurrs. At the end of the function is the cleanup thus: do { ret = foo(); //returns a '1' BREAKONERROR(ret); } WHILE(FALSE); //perform cleanup (ie: release memory where needed) Guess I should have followed the white rabbit a little more ..or took the bluepill.

                    C Offline
                    C Offline
                    CPallini
                    wrote on last edited by
                    #12

                    goto is better.

                    If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                    This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

                    B S 2 Replies Last reply
                    0
                    • C CPallini

                      goto is better.

                      If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                      This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

                      B Offline
                      B Offline
                      BadKarma
                      wrote on last edited by
                      #13

                      CPallini wrote:

                      goto is better.

                      Youre my HERO

                      codito ergo sum

                      1 Reply Last reply
                      0
                      • C CPallini

                        goto is better.

                        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                        This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

                        S Offline
                        S Offline
                        Stephen Hewitt
                        wrote on last edited by
                        #14

                        goto is dangerous in C++ if care is not taken because jumping out of scope will NOT result in the destructors of any C++ objects in the scope.

                        Steve

                        C 1 Reply Last reply
                        0
                        • S Stephen Hewitt

                          goto is dangerous in C++ if care is not taken because jumping out of scope will NOT result in the destructors of any C++ objects in the scope.

                          Steve

                          C Offline
                          C Offline
                          CPallini
                          wrote on last edited by
                          #15

                          C++ has try-catch blocks, usually goto is not needed. :)

                          If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                          This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups