Please support our C advertiser: Programming Forums
![]() |
•
•
Join Date: Jul 2008
Posts: 11
Reputation:
Rep Power: 1
Solved Threads: 0
following is a simple embedded c piece of code, can somebody tell me is there a problem in it ?
i am new to embedded programming. It will be great help, any pointers to this ...
thanks
pdk
c Syntax (Toggle Plain Text)
boolean new(int a) { return !(a & 7); }
thanks
pdk
Last edited by Narue : Jul 12th, 2008 at 9:44 am. Reason: Added code tags
Your analysis is correct.
But whether there is anything 'wrong' depends on what it's supposed to do.
If for example is was a test to see if a number was >= 8, then it would fail miserably on negative numbers.
The name 'new' certainly doesn't help.
But whether there is anything 'wrong' depends on what it's supposed to do.
If for example is was a test to see if a number was >= 8, then it would fail miserably on negative numbers.
The name 'new' certainly doesn't help.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
•
•
Join Date: Jul 2008
Posts: 11
Reputation:
Rep Power: 1
Solved Threads: 0
even i was not sure. because in the test, i was supposed to tell what the function is intended to do and any potential problems !!!.
i could not exactly figure out this .. i.e why any pointers to this will be helpful.
as pointed out, i was also thinking whether it will cause any problems for -ve numbers .. but without any potential soln..
i could not exactly figure out this .. i.e why any pointers to this will be helpful.
as pointed out, i was also thinking whether it will cause any problems for -ve numbers .. but without any potential soln..
•
•
Join Date: Jul 2008
Posts: 11
Reputation:
Rep Power: 1
Solved Threads: 0
This function resave number, if the number is 0 its return true else its return false.
The Boolean " a & 7 ;" says if a != 0 and 7 != 0 then 1 else 0
Has you see the 7 is not needed
--------------------------------
when the number is lets say '8'. it still returns '1' .. i.e basically numbers for which lsb 3 bits are not set. it will return '1'
The Boolean " a & 7 ;" says if a != 0 and 7 != 0 then 1 else 0
Has you see the 7 is not needed
--------------------------------
when the number is lets say '8'. it still returns '1' .. i.e basically numbers for which lsb 3 bits are not set. it will return '1'
![]() |
Other Threads in the C Forum
- Previous Thread: Return values from functions
- Next Thread: Read from data file at some specified location
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)






Linear Mode