device driver

Apr 27, 2004 1 Replies

Hi,



when trying to access the data register of a device I must first perform a cast on the register address:



example:



int * data_register = (int *) 0xFFFF0000;



Can somebody explain me why the cast is needed ?



Thx,



T.



Find a friendly software geek and get them to give you a lesson in type checking.

Assuming int x;

Roughly, it's so the compiler knows that data_register is a pointer to an int rather than an int. So you need to write x = *data_register rather than x = data_register

Having the compiler check for that sort of mixup catches a huge fraction of simple programming bugs. (They are often a pain to track down with traditional debugging methods.)

The suespammers.org mail server is located in California. So are all my other mailboxes. Please do not send unsolicited bulk e-mail or unsolicited commercial e-mail to my suespammers.org address or any of my other addresses. These are my opinions, not necessarily my employer's. I hate spam.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required