typedef unsigned char u8; typedef unsigned short u16; struct s { u8 anchor[5]; u16 table_length; }; void some_function(int x); void other_function(const struct s *pointer) { u8 checksum = 0; const u8 *ptr = (const u8 *)(pointer); for (unsigned int i = 0; i < sizeof(*pointer); ++i) checksum = (checksum + ptr[i]) & 0xFF; some_function((int)checksum); }