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. Other Discussions
  3. The Weird and The Wonderful
  4. Bug of the day

Bug of the day

Scheduled Pinned Locked Moved The Weird and The Wonderful
help
37 Posts 23 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.
  • A anton_l

    It seems that problem is in semicolon after "if" statement. DoSomeThing will be fired any time the code executes.

    K Offline
    K Offline
    KP Lee
    wrote on last edited by
    #27

    anton_l wrote:

    It seems that problem is in semicolon after "if" statement.

    It seems that's the reason he posted it! :laugh:

    1 Reply Last reply
    0
    • K Klaus Werner Konrad

      Wich compiler ?

      while (*dest++ = *source++);

      is completely correct, isn't it ?

      L Offline
      L Offline
      Lutoslaw
      wrote on last edited by
      #28

      Klaus-Werner Konrad wrote:

      Wich compiler?

      FTFY: Witch compiler Actually, in this case the C# produces three useless wormings: both for the "while(...);" (an empty statment), "x=y" (an assigment instead of a comparison) and the "*" (an "unsafe" code), does it?

      Greetings - Jacek

      K B 2 Replies Last reply
      0
      • R Ravi Bhavnani

        Does that even compile? /ravi

        My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

        T Offline
        T Offline
        Thomas Daniels
        wrote on last edited by
        #29

        No, it doesn't. But that's just the bug: it doesn't compile! [EDIT] I'm sorry, I didn't see the semicolon after the if statement. That's the bug! :doh:

        The quick red ProgramFOX jumps right over the Lazy<Dog>. My latest article: Understand how bitwise operators work (C# and VB.NET examples) My group: C# Programmers Group

        1 Reply Last reply
        0
        • L Lutoslaw

          Klaus-Werner Konrad wrote:

          Wich compiler?

          FTFY: Witch compiler Actually, in this case the C# produces three useless wormings: both for the "while(...);" (an empty statment), "x=y" (an assigment instead of a comparison) and the "*" (an "unsafe" code), does it?

          Greetings - Jacek

          K Offline
          K Offline
          Klaus Werner Konrad
          wrote on last edited by
          #30

          Thanks for the correction. My example was - as a reply to the mention of C, of course a C code snippet, and is the full working function body for strcpy(). Of course, it's unsafe - but lightning fast :-)

          B 1 Reply Last reply
          0
          • L Lutoslaw

            Klaus-Werner Konrad wrote:

            Wich compiler?

            FTFY: Witch compiler Actually, in this case the C# produces three useless wormings: both for the "while(...);" (an empty statment), "x=y" (an assigment instead of a comparison) and the "*" (an "unsafe" code), does it?

            Greetings - Jacek

            B Offline
            B Offline
            BobJanova
            wrote on last edited by
            #31

            They're not useless warnings, they're warning you that you did something unintended. Actually this wouldn't compile at all in C#, even with unsafe mode turned on, because the result type isn't boolean. It's a classic and well known piece of C code, and I think you only got a warning for the empty loop body (and if you did if(a = 3) by accident you were just screwed, hence writing if(3 == a) instead which is an error if you screw it up).

            L 1 Reply Last reply
            0
            • K Klaus Werner Konrad

              Thanks for the correction. My example was - as a reply to the mention of C, of course a C code snippet, and is the full working function body for strcpy(). Of course, it's unsafe - but lightning fast :-)

              B Offline
              B Offline
              BobJanova
              wrote on last edited by
              #32

              Just in case you didn't get the joke there, he's making a funny about the compiler being witchcraft. The word you meant to use is 'which'.

              1 Reply Last reply
              0
              • B BobJanova

                They're not useless warnings, they're warning you that you did something unintended. Actually this wouldn't compile at all in C#, even with unsafe mode turned on, because the result type isn't boolean. It's a classic and well known piece of C code, and I think you only got a warning for the empty loop body (and if you did if(a = 3) by accident you were just screwed, hence writing if(3 == a) instead which is an error if you screw it up).

                L Offline
                L Offline
                Lutoslaw
                wrote on last edited by
                #33

                Right. :thumbsup:

                Greetings - Jacek

                1 Reply Last reply
                0
                • D Delphi4ever

                  if(SomeThing == SomeOtherThing); { DoSomeThing; } This one has been sitting in the codebase for a couple of years... :(( At least it did SomeThing...

                  A Offline
                  A Offline
                  Adam David Hill
                  wrote on last edited by
                  #34

                  Ooh, nasty! Couldn't see it at first.

                  Check out my latest article: Celerity: How it was all done. A complete how-to on our sensor-driven head-tracking virtual reality tunnel game in C#.

                  1 Reply Last reply
                  0
                  • D Delphi4ever

                    if(SomeThing == SomeOtherThing); { DoSomeThing; } This one has been sitting in the codebase for a couple of years... :(( At least it did SomeThing...

                    M Offline
                    M Offline
                    Marc Clifton
                    wrote on last edited by
                    #35

                    Delphi4ever wrote:

                    if(SomeThing == SomeOtherThing);

                    I remember years ago spending a few hours debugging why (in C++):

                    for (int i=0; i<10; i++);
                    DoSomething();

                    where DoSomething executed only once. I only had to learn that lesson once! :rolleyes: Marc

                    Testers Wanted!
                    Latest Article: User Authentication on Ruby on Rails - the definitive how to
                    My Blog

                    1 Reply Last reply
                    0
                    • G Gary Wheeler

                      I've worked with people who did this:

                      if condition
                      DoSomething();
                      else
                      {
                      DoOtherThing1();
                      DoOtherThing2();
                      }

                      or

                      if condition
                      {
                      DoSomething1();
                      DoSomething2();
                      }
                      else
                      DoOtherThing();

                      Both of which give me the creeping heebie-jeebies.

                      Software Zen: delete this;

                      C Offline
                      C Offline
                      cjb110
                      wrote on last edited by
                      #36

                      oh, urm, oops? I do that...

                      G 1 Reply Last reply
                      0
                      • C cjb110

                        oh, urm, oops? I do that...

                        G Offline
                        G Offline
                        Gary Wheeler
                        wrote on last edited by
                        #37

                        It's valid syntax, and if you're confident that you'll never ever forget to add or remove braces appropriately, go for it.

                        Software Zen: delete this;

                        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