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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
09/06/06 15:46
Read: times


 
#123761 - A learning 'C' speed bump
I've dug out my 15 year old Turbo C book and have re-learned quite alot, however I've run in to a problem I've been struggling with for a couple of days.

Here is my problem: In the below function if I declare the local variables as 'int' then the return value is only the last digit entered, for example this function is called, I enter '23' on the keypad, the return value is '3'. If I declare the local variables as 'char' then the return value is correct, but only up to 255. What am I missing for this to work for integers?

Compliler is SDCC

int getdec(unsigned char dpoint, unsigned char alwneg, unsigned char angent)
// dpoint, alwneg, and angent are flags that are not implemented yet
{
// local variables
int decimal;		// return value
int temp;		// temporary value
int key;
...
...
...


	key = 0;
	while (key == 0)
		{
		key = getkey();        // get key code from keypad
		}
...
a switch/case statement assigns the correct numeric value to 'key'
...
	if ((key >= 0) & (key <= 9))            // if key is numeric
		{
		putchar(key + 48);		// display ascii value
		temp = temp * 10 + key;		// tally it
                }
return(temp);
}


List of 16 messages in thread
TopicAuthorDate
A learning 'C' speed bump            01/01/70 00:00      
   Uninitialised?            01/01/70 00:00      
      Variables were initialized.            01/01/70 00:00      
         logical vs bitwise            01/01/70 00:00      
            this is when the C people try to be smart...            01/01/70 00:00      
            Ok, corrected the && ...            01/01/70 00:00      
               check the size of the variables            01/01/70 00:00      
                  I Ceed it already            01/01/70 00:00      
   Style            01/01/70 00:00      
      style does not apply to C only            01/01/70 00:00      
         words            01/01/70 00:00      
   Does it??            01/01/70 00:00      
      Verification            01/01/70 00:00      
   oh come on...            01/01/70 00:00      
   RESOLVED            01/01/70 00:00      
   variable scope            01/01/70 00:00      

Back to Subject List