Войти
ФлеймФорумПрограммирование

char - зачем? (5 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#60
(Правка: 12:30) 12:28, 12 июля 2018

Zefick
> STL тоже не пользуешься
Впервые слышу.

> Если бы ты хоть раз открывал стандарт, про который говоришь, то
Блиин, чувак.
Для начала нового функционала конкретно "uint8_t" - не несёт. Она просто переименование "char". Уже наводит на подозрения, да? Идейка уровня: а давайте переименуем "if" в "if_cg4". Просто сказка.
А потом - ты на одно имя этого васянства посмотри: "uint8_t". По названию даже видно: это велосипед какого-то кустаря.
Подчёркивание плюс два сокращения в одну букву: "u" и "t".
Да лол, я так свои переменные часто стыжусь называть, иначе будет что-то вроде "grpos2_sQ". В итоге оно максимум тянет на либу кустаря, который хотел как лучше.

Вот тебе пример такого-же кустаря но который хоть в названия научился.
> https://en.cppreference.com/w/cpp/types/byte
> Всем радоваться полчаса.

#61
13:53, 12 июля 2018

122
> Она просто переименование "char".
  unsigned char. Вот видишь, ты даже не знаешь что это не одно и то же, а ещё споришь.

#62
16:39, 12 июля 2018

Zefick
> ты даже не знаешь что это не одно и то же
Ай, человек, не смеши меня.
Вот бы сейчас не знать что такое ансигнед.

#63
16:45, 12 июля 2018

Хе-хе.
В ABI даже имена для char, signed char, unsigned char не совпадают: http://refspecs.linuxbase.org/cxxabi-1.83.html#mangling

<builtin-type> ::= v  # void
     ::= w  # wchar_t
     ::= b  # bool
     ::= c  # char
     ::= a  # signed char
     ::= h  # unsigned char
     ::= s  # short
     ::= t  # unsigned short
     ::= i  # int
     ::= j  # unsigned int
     ::= l  # long
     ::= m  # unsigned long
     ::= x  # long long, __int64
     ::= y  # unsigned long long, __int64
     ::= n  # __int128
     ::= o  # unsigned __int128
     ::= f  # float
     ::= d  # double
     ::= e  # long double, __float80
     ::= g  # __float128
     ::= z  # ellipsis
     ::= u <source-name>  # vendor extended type

#64
19:20, 12 июля 2018

Panzerschrek[CN]
> В ABI даже имена для char, signed char, unsigned char не совпадают
Потому что по стандарту это 3 разных типа и знаковость char - implementation defined

#65
19:47, 12 июля 2018

122
> Вот бы сейчас не знать что такое ансигнед.
  От человека, который не знает что такое STL всякого можно ожидать.

#66
19:50, 12 июля 2018

А, получается граблиэти разложили K&R - у них вообще signed/unsigned могло быть указано только с int и поэтому знаковость байта была impl defined.
Жесть...

#67
20:10, 12 июля 2018

Гы, а ведь правда, походу это даже сабж про блеск и нищету.
Типа керниган и ричи были из культуры больших эвм и их головы думали прежде всего словами, как сама система инструкций однооперандных была часто сделана в машинах типа pdp и всяких ibm-вских мейнфрейм. Они вообще не думали о байтах. Байты на pdp-11 после pdp-7 воспринимались видимо как экзотичный канделябр главным образом нужный для компактной упаковки строк. Поэтому байт был сразу загнан в загон платформозависимого символа текста, а в начале было слово.
Забавно, забавно.

#68
21:51, 12 июля 2018

Zefick
> который не знает что такое STL
Вот бы сейчас знать все васянские либы. Погуглил, очередной велосипед "а давайте напишем свою память со своим хитрым доступом". Долгая компиляция, тормоза, всё в комплекте.

#69
(Правка: 22:33) 22:33, 12 июля 2018

Kartonagnick
> оно работает. но оно - не правильное. а почему неправильное я не скажу.
> ясно.
Читай тред, уже на сто раз сказали.

122
> Для начала нового функционала конкретно "uint8_t" - не несёт. Она просто
> переименование "char". Уже наводит на подозрения, да? Идейка уровня: а давайте
> переименуем "if" в "if_cg4". Просто сказка.
> А потом - ты на одно имя этого васянства посмотри: "uint8_t". По названию даже
> видно: это велосипед какого-то кустаря.
> Подчёркивание плюс два сокращения в одну букву: "u" и "t".
Тогда почему ты не делаешь

using integer_type = int;
using character_type = char;
using immutable_character_pointer_type = char const*;
?

Или ты реально так и делаешь? Абсолютный безумец.

#70
11:23, 13 июля 2018

Delfigamer
> Читай тред, уже на сто раз сказали.
я читал тред.
в том то и дело.
не нашел ничего, кроме ваших голословных выкриков, где то на грани бреда.

#71
(Правка: 12:30) 12:28, 13 июля 2018

122
> Она просто переименование "char".
Тебе то откуда знать, лол, человеку сознательно изолирующемуся от знаний. Сидишь там в своей помойке, ну и сиди.

Кстати, чушь. uint_8 - это безннаковое 8-битное число. Char - это тип для хранения символов. Нет никакой взаимосвязи, ну если говорить про реальность, а не что там крестуханы придумали

#72
(Правка: 13:31) 13:22, 13 июля 2018

9К720
> Char - это тип для хранения символов.
Какое значение char соответствует символу U+1F914 THINKING FACE?
Никакого, о чём я уже пятую страницу твержу.
"char" не предназначен для элементов множества "character", он предназначен исключительно для элементов множества "byte", и любые попытки применить его к чему-то ещё - это натягивание карманной совы на трёмхетровый глобус.

#73
13:33, 13 июля 2018

https://ideone.com/HIwVQI

    #include <cstdint>
    #include <iostream>
    using namespace std;
     
    int main() {
      uint8_t x = 67;
      std::cout << "x=" << x << '\n';
      return 0;
    }

Изображение
#74
13:36, 13 июля 2018

Delfigamer
> "char" не предназначен для элементов множества "character", он предназначен
> исключительно для элементов множества "byte", и любые попытки применить его к
> чему-то ещё
Я же написал выше  - "если говорить про реальность, а не что там крестуханы придумали"

Страницы: 1 2 3 4 5 6 7 Следующая »
ФлеймФорумПрограммирование