Simple differences - differing types Differing types in OS typedefs E.g. width and signedness of gid_t Beware of signed vs. unsigned issues here Solution: Avoid use as array index or in pointer arithmetic If you must, then sanitise first (ensure integers are >= 0) Avoid annoying warnings in printf() conversions by casting up to a longer type (e.g. long)