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