Как вы (если возможно) определяете тип по целочисленному размеру? Например, если бы я хотел создать тип длиной 3 байта, как я мог бы сделать что-то подобное? (Я знаю, что это неправильно)Тип указателя на основе целочисленного размера (C99)
typedef int24_t 3;
Я пытаюсь написать обобщенную функцию, которая принимает параметр строки символов, содержащий несколько номеров, и сохраняет число в указатель, передаваемый в качестве другого параметра.
Однако я хочу сделать так, чтобы вы могли передать числовой параметр, который определяет, насколько велика будет тип переменной, хранящей числа: т. Е. Если бы это было 1, то тип мог бы быть символом, если бы это было 4, тип мог бы быть int и т. д.
Я знаю, что можно просто сохранить номер во временной переменной фиксированного размера, а затем только скопировать соответствующие байты в указатель в зависимости от запрашиваемого размера, но я хочу, чтобы код был портативным и Я не хочу вмешиваться в Endianness, поскольку у меня были проблемы с этим в прошлом.
Благодаря
Если вы хотите, чтобы * данные * были переносимыми, вам нужно иметь дело с endianess, нет никакого способа обойти это. Если * данные * будут оставаться на одной платформе (независимо от того, что это такое), тогда вам не о чем беспокоиться. –
Вероятно, нет 24-битного целочисленного типа. Поскольку 'typedef' создает псевдоним только для существующего типа, а не для нового типа, нет никакого способа обойти это - если вам действительно нужен его целочисленный тип. –