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. Braces required?

Braces required?

Scheduled Pinned Locked Moved C / C++ / MFC
question
18 Posts 10 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.
  • J Jamie Hale

    As soon as my build finishes, I'll try to reproduce it in a postable version. J

    "I am the Lorax. I speak for the trees."

    K Offline
    K Offline
    Keith D
    wrote on last edited by
    #8

    hmm.. does it work correctly when you use braces? and what compiler are you using?

    J 1 Reply Last reply
    0
    • R Rage

      kuphryn wrote: What? The compile should output an error message. Insert the braces :confused: why ? syntax is ok. But inserting brackets is still a good idea ! ~RaGE();

      J Offline
      J Offline
      John M Drescher
      wrote on last edited by
      #9

      Rage wrote: But inserting brackets is still a good idea ! I always insert the braces. It makes the code easier to read and avoids me forgetting to add them when I add another statement to the for loop. As for the error I can not see why... John

      J A 2 Replies Last reply
      0
      • K Keith D

        hmm.. does it work correctly when you use braces? and what compiler are you using?

        J Offline
        J Offline
        Jamie Hale
        wrote on last edited by
        #10

        Works fine when I use braces. Using VC++ 6.0 SP5. J

        "I am the Lorax. I speak for the trees."

        1 Reply Last reply
        0
        • J John M Drescher

          Rage wrote: But inserting brackets is still a good idea ! I always insert the braces. It makes the code easier to read and avoids me forgetting to add them when I add another statement to the for loop. As for the error I can not see why... John

          J Offline
          J Offline
          Jamie Hale
          wrote on last edited by
          #11

          To me, the code is "cleaner" without the braces, but I understand it's just a style thing. J

          "I am the Lorax. I speak for the trees."

          J 1 Reply Last reply
          0
          • J Jamie Hale

            To me, the code is "cleaner" without the braces, but I understand it's just a style thing. J

            "I am the Lorax. I speak for the trees."

            J Offline
            J Offline
            Jim A Johnson
            wrote on last edited by
            #12

            "just a style thing"? Read a good book on defensive programming - "Code Complete" comes to mind. Your "style" is prone to errors.

            1 Reply Last reply
            0
            • J Jamie Hale

              I have the following code:

              1. for(int i = 0; i < 20; ++i)
              2. if(!m_aSoftwareGains[i].Load(pFile))
              3.  return false;
                
              4. m_bSoftwareGainsLoaded = true;

              I didn't put in the seemingly extraneous braces. Rather than running the following lines: 1,2,1,2,1,2,1,2...1,2,4 it runs: 1,2,4 Can anyone explain to me why this is? J

              "I am the Lorax. I speak for the trees."

              J Offline
              J Offline
              John R Shaw
              wrote on last edited by
              #13

              I sounds like you are single steping through the code with the debugger.

              1. for(int i = 0; i < 20; ++i)
              2. if(!m_aSoftwareGains[i].Load(pFile))
              3. return false;
              4. m_bSoftwareGainsLoaded = true;

              When single stepping it will appear to go 1,2,4,1,2,4,...,1,2,3.

              1. for(int i = 0; i < 20; ++i)
              2. {
              3. if(!m_aSoftwareGains[i].Load(pFile))
              4. return false;
              5. }
              6. m_bSoftwareGainsLoaded = true;

              Now It should appear to be 1,3,5,1,3,5,...,1,3,4.

              INTP

              J 1 Reply Last reply
              0
              • J Jamie Hale

                I have the following code:

                1. for(int i = 0; i < 20; ++i)
                2. if(!m_aSoftwareGains[i].Load(pFile))
                3.  return false;
                  
                4. m_bSoftwareGainsLoaded = true;

                I didn't put in the seemingly extraneous braces. Rather than running the following lines: 1,2,1,2,1,2,1,2...1,2,4 it runs: 1,2,4 Can anyone explain to me why this is? J

                "I am the Lorax. I speak for the trees."

                H Offline
                H Offline
                Haakon S
                wrote on last edited by
                #14

                Are you sure you don't have a ";" at the end of line one? I've tried to reproduce the difference in behaviour, but with no success. When you look at the disassembly, it seems to be identical with or without braces. :confused: Haakon. 'Problems worthy of attack prove their worth by hitting back.' Piet Hein

                J 1 Reply Last reply
                0
                • H Haakon S

                  Are you sure you don't have a ";" at the end of line one? I've tried to reproduce the difference in behaviour, but with no success. When you look at the disassembly, it seems to be identical with or without braces. :confused: Haakon. 'Problems worthy of attack prove their worth by hitting back.' Piet Hein

                  J Offline
                  J Offline
                  Jamie Hale
                  wrote on last edited by
                  #15

                  :-O It was a user problem. I assumed the problem was there, and that biased my testing. I stepped through, and when the code returns from the call (line 2), the little yellow arrowhead points to line 4. THAT DOESN'T MEAN THAT IT IS THE NEXT INSTRUCTION TO RUN! I must have seen that in my testing, wondered what the hell was going on, and stopped the debug. I too traced through the assembly, but made the same mistake - didn't trace through far enough. Oh well. :-O J

                  "I am the Lorax. I speak for the trees."

                  H 1 Reply Last reply
                  0
                  • J John R Shaw

                    I sounds like you are single steping through the code with the debugger.

                    1. for(int i = 0; i < 20; ++i)
                    2. if(!m_aSoftwareGains[i].Load(pFile))
                    3. return false;
                    4. m_bSoftwareGainsLoaded = true;

                    When single stepping it will appear to go 1,2,4,1,2,4,...,1,2,3.

                    1. for(int i = 0; i < 20; ++i)
                    2. {
                    3. if(!m_aSoftwareGains[i].Load(pFile))
                    4. return false;
                    5. }
                    6. m_bSoftwareGainsLoaded = true;

                    Now It should appear to be 1,3,5,1,3,5,...,1,3,4.

                    INTP

                    J Offline
                    J Offline
                    Jamie Hale
                    wrote on last edited by
                    #16

                    :-O Yes, I discovered this after digging through the assembly. Oops. J

                    "I am the Lorax. I speak for the trees."

                    1 Reply Last reply
                    0
                    • J Jamie Hale

                      :-O It was a user problem. I assumed the problem was there, and that biased my testing. I stepped through, and when the code returns from the call (line 2), the little yellow arrowhead points to line 4. THAT DOESN'T MEAN THAT IT IS THE NEXT INSTRUCTION TO RUN! I must have seen that in my testing, wondered what the hell was going on, and stopped the debug. I too traced through the assembly, but made the same mistake - didn't trace through far enough. Oh well. :-O J

                      "I am the Lorax. I speak for the trees."

                      H Offline
                      H Offline
                      Haakon S
                      wrote on last edited by
                      #17

                      No problem.:-D If we didn't learn anything, you certainly have. H. 'Problems worthy of attack prove their worth by hitting back.' Piet Hein

                      1 Reply Last reply
                      0
                      • J John M Drescher

                        Rage wrote: But inserting brackets is still a good idea ! I always insert the braces. It makes the code easier to read and avoids me forgetting to add them when I add another statement to the for loop. As for the error I can not see why... John

                        A Offline
                        A Offline
                        Atlantys
                        wrote on last edited by
                        #18

                        John M. Drescher wrote: I always insert the braces I'll :beer: to that! :-D I prefer to wear gloves when using it, but that's merely a matter of personal hygiene [Roger Wright on VB] Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. [Rich Cook]

                        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