Я студент, выполняющий задание, требующее разливки различных типов данных в C. Наш код должен быть портативным, поэтому важно использовать sizeof. Также предлагается, чтобы мы сделали свое собственное литье, чтобы от него не было независимым от компилятора. Мой вопрос заключается в том, как правильно применить несколько типов данных к sizeof, который возвращает size_t, который является целым значением без знака?Кастинг нескольких разных типов данных в C
Ниже это выглядит странно, но я просто преобразую символы в байты, если он скомпилирован на разных архитектурах, где char может быть больше/меньше, чем 1 байт.
short amountOfBytes;
char b = 10;
amountOfBytes+=(short)((unsigned int)b*sizeof(char));
Имею ли я это право? Вот еще один пример:
short a, b = 200;
a = (short)(((unsigned int)b+1) * sizeof(char));
Последний вопрос: лучше ли применять cast_ size_t, или я должен просто придерживаться unsigned int?
'sizeof (char)' всегда 1. –
не пытайтесь быть умнее, чем сын компилятора –
не должен 'char b' быть' unsigned char b', а 'short' be' unsigned short'? –