Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/01/10 11:37
Read: times


 
#173679 - such a 'newb' error (sic)
Responding to: ???'s previous message
Kai Busuttil said:
UGH That semicolon! Bugger I didn't notice the semicolon, was half asleep while writing the code.

Although it's a very easy mistake to make it can, as you say, be a real #@*&%$ to spot - even for seasoned users!

Probably would have worked if the semicolon wasn't there.

It is working in that it's doing what the code specifically says - the problem is that what the code says is not what you actually wanted to do!

This is a fine example of how a piece of code can compile without errors, and run without crashing, yet not produce the result that you wanted.

It is very important to understand the difference between the syntax & sematics errors that can be spotted by the compiler, and this type of coding error - which cannot.

... if I recall well can be done in plain old fashioned C.

What do you mean by, "plain old fashioned C"?

... the string compare command ...

It's not a "command"; it's a call to a function - and that function just happens to be provided as part of the standard 'C' library.

Note that the standard 'C' library is plain, old fashioned 'C'!


... resulted in a shorter code, hence a more elegant solution.

Note that shorter source code does not equate to smaller executable code.

In this case, as previously noted, it is unlikely that a hand-coded 'C' loop can beat (either on size or speed) the compiler's own strcmp library function - which should have been carefully optimised by the compiler maker.

But calling something apparently (sic) simple like printf can add a huge amount to your executable!

Floating point is another key example.


now I feel a little bit stupid for not having noticed such a 'newb' error

No - nothing to feel stupid about there!


List of 22 messages in thread
TopicAuthorDate
Question about KEIL            01/01/70 00:00      
   It ain't how i would do it            01/01/70 00:00      
      Thank you!            01/01/70 00:00      
      using strncmp for a password check is a bug :^)            01/01/70 00:00      
         Yeah whatever            01/01/70 00:00      
         Interesting            01/01/70 00:00      
         Eh??            01/01/70 00:00      
            40 instead of 50000000            01/01/70 00:00      
   Nothing to do with Keil            01/01/70 00:00      
      Hmmm I see            01/01/70 00:00      
         Problem solved!            01/01/70 00:00      
            Do you undrestand why it did not work?            01/01/70 00:00      
               Wrong            01/01/70 00:00      
                  Yes, it's wrong - but...            01/01/70 00:00      
                     code size decrease            01/01/70 00:00      
                        Maybe            01/01/70 00:00      
                  After a nights sleep            01/01/70 00:00      
         Where it gets specific to Keil (or whatever)            01/01/70 00:00      
   Explain            01/01/70 00:00      
      Woops.            01/01/70 00:00      
         such a 'newb' error (sic)            01/01/70 00:00      
   Password application            01/01/70 00:00      

Back to Subject List