Привет всем еще раз.
Можно ли узнать размер какого-либо элемента из enum?
Например:
enum SOME_ENUM { some_element[128], any_element[64] }
как узнать размеры some_element и any_element?
Привет всем еще раз.
Можно ли узнать размер какого-либо элемента из enum?
Например:
enum SOME_ENUM { some_element[128], any_element[64] }
как узнать размеры some_element и any_element?
?PHP код:
printf("%d, %d", sizeof SOME_ENUM:some_element, sizeof SOME_ENUM:any_element);
Последний раз редактировалось Shaolinka; 06.04.2021 в 20:19.
[ ERROR ] Line 11: invalid symbol name "SOME_ENUM"
[WARNING] Line 11: expression has no effect
[ ERROR ] Line 11: invalid symbol name "SOME_ENUM"
[WARNING] Line 11: expression has no effect
[ ERROR ] Line 11: expected token: ";", but found ")"
[ FATAL ] Line 11: too many error messages on one line
enum SomeEnum { FirstConst[100], SecondConst[150] // other constants.. }; new someVar[SomeEnum]; main() { // output: 100, 150 }
nitecore (20.04.2021)
В данном случае, у тебя в энуме находятся константы, а константа не может иметь размера. Поэтому, юзай вариант от totes.bild.
Так же, если что, вычислить "размер" члена перечисления можно так:
Хотя не знаю где конкретно этот метод может пригодиться в коде.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Такой подход сработает только если знаешь, в каком порядке расположены элементы перечисления. Если же, к прмеру, добавить в конце SOME_ENUM новый элемент, то вычисление размера для any_element сломается.
В целом, согласен с вариантом totes.bild, с той лишь оговоркой, что массив someVar стоило объявить с помощью ключевого слова stock, чтобы избежать варнинга, если этот массив больше нигде не используется (да, компилятор не считает sizeof(someVar) за использование массива).
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)