C ran on computers with 8/12/16/18/24/32/36/48/60 bit words, computers with 8/9-bit bytes, 6/9 bit characters, computers with word and byte addressing, with one's and two's compliment integers, with flat and non-flat memory models, with different endianness & different alignment rules.

Early graphics APIs ran on GPUs that were just about as different form one another as that.

We could easily figure it out, were it not for the trillion dollars incentives to not figure it out.