Yes, but in C/C++ the modifiers are part of the type, and you'd do things like typedef unsigned int uint; typedef long long iquad; etc. , and of course short is 2 bytes, int is 4, long long is 8. Floats of course could, in theory, be something else than IEEE. They mostly aren't though. the 4 bytes that constitute a float have been stuck into files and sockets for ages now. It's common practice to do it. You might run into byte order trouble, which is easy enough to resolve. But I've never, not even once, run into a case of trying to load a 4-byte float that one machine produced, that another machine didn't understand.
Strangely though GLSL has introduced double and uint (and their vector types). But you cannot typedef to get type consistency. For instance you cannot typedef mediump float half; That'd be useful, but GLSL doesn't have a half data type (and neither does it have a short, or byte), and anyways, it doesn't have typedef either. Which is strange, because it also contains packing/unpacking instructions, which explicitly refer to formats like that. The modifiers modify globally for a type, or of the variable being modified, not of the type being used.
Anyway, it'd be tremendously useful for consistency of a program if a programmer could rely on numerical implementation. And that's what I'm bemoaning.