Re: strcut casts unsigned long

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>
> But does skb->_skb_dst allocate memory any where? It is unsigned long. This is hard part for me to understand. Any explain why unsigned long
> _skb_dst can be that?
>

skb->_skb_dst is a pointer. A pointer is nothing else that a variable
that stores a memory value (i.e: 0x0012ff5C). This value represent a
memory address. Usually pointers are defined as * type, so the
compiler can make type checking when analizing language expressions.
But you could represent as a generic void * pointer. In the kernel,
memoryaddresses are usually represented as variables of types unsigned
long.

To make an analogy, char and int variables are integers, but you
usually use char variables to represent ASCII codes. You can cast a
char to an int, even when int is  meant to represent integers. The
same way you could store a memory address either in a void * or
unsigned long variable.

I don't know why it is use unsigned long, but I guess that the GNU C
standard says that unsigned long it is the same size that the cpu word
size in all architechtures.

Best regards,

-----------------------------------------
Javier Martínez Canillas
+595 981 88 66 58
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux