Ну, я полностью получаю самые основные типы данных C, такие как short, int, long, float, если быть точным, все числовые типы. Эти типы должны быть известны, чтобы выполнять правильные операции с правильными числами. Например, использовать FPU для добавления двух чисел с плавающей точкой. Таким образом, компилятор должен знать, что это за тип.
Но когда дело доходит до персонажей, я немного не в себе. Я знаю, что базовый тип данных C предназначен для кодирования символов ASCII. Но я не знаю, зачем вам нужен еще один тип данных для персонажей. Почему вы не можете просто использовать 1-байтовое целочисленное значение для хранения символа ASCII. Если вы вызываете printf, вы указываете тип данных в вызове, чтобы вы могли сказать printf, что целое число представляет символ ASCII. Я не знаю, как cout разрешает тип данных, но я думаю, вы могли бы просто указать это как-то.
Другое дело, что если вы хотите использовать Unicode, вы должны использовать тип данных wchar. Но что, если я хотел бы использовать какое-то другое, например, ISO или кодирование Windows вместо UTF? Так как wchar кодирует символы как UTF-16 или UTF-32 (я читаю их специфичные для компилятора). И что, если я захочу использовать, например, какое-нибудь воображаемое новое 8-байтовое кодирование текста? Какой тип данных я должен использовать для этого? Я на самом деле довольно смущен этим, потому что я всегда ожидал, что если я захочу использовать UTF-32 вместо ASCII, я просто скажу компилятору «получить значение UTF-32 для введенного мной символа и сохранить его в поле 4 символа». Я думал, что кодирование текста должно решаться до конца, например, функция печати. Мне просто нужно указать кодировку, которую должен использовать компилятор, так как Windows не использует ASCII в приложениях win32, я полагаю, что компилятор C должен преобразовывать тип символов, который я набрал, в ASCII из любого типа, который Windows отправляет в редактор C.
И последнее, что если я захочу использовать, например, 25-байтовое целое число для некоторых математических операций? C не имеет определенного типа данных. Да, я знаю, что это будет сложно, так как все математические операции нужно будет изменить, потому что ЦП не может сложить 25-байтовые числа вместе. Но есть ли способ сделать это? Или есть математическая библиотека для этого? Что если я хочу вычислить число Пи до 1000000000000000 цифр? :)
Я знаю, что мой вопрос довольно длинный, но я просто хотел объяснить мои мысли как можно лучше на английском, поскольку это не мой родной язык, это сложно. И я считаю, что есть простой ответ на мой вопрос (ы), что я пропустил, что объясняет все. Я много читал о кодировании текста, учебниках по Си, но ничего о нем. Спасибо за ваше время.