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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/24/04 21:38
Read: times


 
#73137 - RE: calling unsigned char
Responding to: ???'s previous message
Raj Shetgar said:
If you need to access any variable across various functions you need to make it a global variable

If the functions are in the same file, make it 'static'
http://www.8052.com/forum/read.phtml?id=72566

If the functions are in different files, you need a definition in exactly one file, and corresponding 'extern' declarations in all other files that need access to it.
This is best accomplished by use of a Header File

If you just need to see the value of the variable (not change the variable itself), you can pass it as a parameter:
void main(void) 
{ 
   unsigned char x; 

   x = 0x31; 

   dosomething( x );
} 

void dosomething( unsigned char xx ) 
{ 
   unsigned char y; 

   y = xx; 
}


If you want to be able to change the value of the variable without making it global you can, with great care, use a Pointer:
void main(void) 
{ 
   unsigned char x; 

   x = 0x31; 

   dosomething( &x );
} 

void dosomething( unsigned char *px ) 
{ 
   unsigned char y; 

   y = 23;

   *px = y; 
}
NOTE: This example is purely for the purposes of illustrating that it can be done; I am not saying that this is a good example of what you should do!

Raj Shetgar said:
I suggest you to go through a general C book.

Absolutely!
None of this is specific to the 8051 - it is all perfectly standard 'C' language basics.


Perhaps KR shold read K&R...? ;-)


List of 5 messages in thread
TopicAuthorDate
calling unsigned char            01/01/70 00:00      
   RE: calling unsigned char            01/01/70 00:00      
      RE: calling unsigned char            01/01/70 00:00      
   read this thread            01/01/70 00:00      
   Mr Pedantic            01/01/70 00:00      

Back to Subject List