Дело не в языке, а в стандарте С++ (на котором основан ардуиновский Wiring), который предполагает тип
int
равный некоторому размеру, зависящему от
целевой платформы:
Plain ints have the natural size suggested by the architecture of the execution environment
Причина - оптимальность размера типа для процессора.
С большой долей вероятности там отличаются размеры и остальных типов, включая указатели (
void*
).