Well, I completely get the most basic C data types, such as short, int, long, float, or rather, all numeric types. These types must be known in order to perform the correct operations with the correct numbers. For example, to use FPU to add two floating point numbers. Therefore, the compiler must know what a type is.
But when it comes to characters, I turn off a little. I know that a basic char data type exists to encode ASCII characters. But I don’t know why you even need a different type of data for the characters. Why couldn't you use only a single-byte integer value to store the ASCII character. If you call printf, you determine the data type in the call, so you can tell printf that the integer represents the ASCII character. I don't know how cout resolves a data type, but I think you could somehow specify it.
Another thing, when you want to use Unicode, you have to use datatype wchar. But what if I wanted to use some other, like ISO, or Windows encoding instead of UTF? Becouse wchar encodes characters as UTF-16 or UTF-32 (I read its specific compiler). And what if I want to use, for example, some kind of imaginary new 8-byte text encoding? What type of data should I use for this? I'm actually very confused by this because I always expected that if I want to use UTF-32 instead of ASCII, I just tell the compiler "get the UTF-32 value of the character I entered and save it in the 4 char field." I thought that text encoding should be processed to the end, for example, the print function. That I just need to specify the encoding for the compiler, because Windows doesent uses ASCII in win32 applications, I assume that the C compiler should convert the char that I typed to ASCII from what the type sends Windows to the C editor.
And the last thing, what if I want to use, for example, 25 byte integers for some high mathematical operations? C does not have a specific data type. Yes, I know that it will be difficult, since all the mathematical operations will need to be changed, because the CPU cannot add 25 bytes together. But is there a way to do this? Or is there a math library for this? What if I want to calculate Pi up to 1,000,000,000,000,000 digits? :)
I know that my question is quite long, but I just wanted to explain my thoughts in the best possible way in English, since it is difficult for his non-native language. And I believe that there is a simple answer to my question (s), something that I missed explains this all. I read a lot about text coding, C tutorials, but nothing about it. Thank you for your time.