Size: a a a

🎄Embedded Group

2021 January 21

P

Ponytale 🇷🇺 in 🎄Embedded Group
какое-нибудь выравнивание сработало мб
источник

Г

Георгий Торопов... in 🎄Embedded Group
Подскажите, хочу сделать инициализацию как-то так:
uint32_t str[2] = {(uint32_t)"QWER", (uint32_t)"1234"};
Но оно не работает. Можно как-то извратиться чтобы сделать такое?
источник

T

Thorn in 🎄Embedded Group
у популярных компиляторов, насколько я знаю, есть только один случай, когда разные this указатели на один экземпляр могут иметь разное значение (и соответственно смещения будут разными). для этого нужно multiple inheritance
источник

T

Thorn in 🎄Embedded Group
короче, пример на https://gcc.godbolt.org/ , ссылку сюда
источник

AK

Andrew K in 🎄Embedded Group
Stas Koynov
ну может конечно ппц какая оптимизация, но он что и для этого обьекта и методы еще раз перегенирирует? чет как то подозрительно
да подозрительно попробую вечером еще раз
источник

SK

Stas Koynov in 🎄Embedded Group
Георгий Торопов
Подскажите, хочу сделать инициализацию как-то так:
uint32_t str[2] = {(uint32_t)"QWER", (uint32_t)"1234"};
Но оно не работает. Можно как-то извратиться чтобы сделать такое?
вы пытаетесь из строки сделать число в компайл тайм? это не работает ни в Си ни в ++.
источник

I

Igor in 🎄Embedded Group
Георгий Торопов
Подскажите, хочу сделать инициализацию как-то так:
uint32_t str[2] = {(uint32_t)"QWER", (uint32_t)"1234"};
Но оно не работает. Можно как-то извратиться чтобы сделать такое?
char str[8] = "QWER1234"
источник

Г

Георгий Торопов... in 🎄Embedded Group
Igor
char str[8] = "QWER1234"
а как выравнивание по 4 байтам сделать?
источник

I

Igor in 🎄Embedded Group
Георгий Торопов
а как выравнивание по 4 байтам сделать?
переменной в целом? прагмы глянуть в документации на компилятор
источник

Г

Георгий Торопов... in 🎄Embedded Group
я хочу чтобы в switch() кейсы выбирались строками по 4 символа
источник

Г

Георгий Торопов... in 🎄Embedded Group
Igor
переменной в целом? прагмы глянуть в документации на компилятор
понял, посмотрю
источник

P

Ponytale 🇷🇺 in 🎄Embedded Group
Георгий Торопов
Подскажите, хочу сделать инициализацию как-то так:
uint32_t str[2] = {(uint32_t)"QWER", (uint32_t)"1234"};
Но оно не работает. Можно как-то извратиться чтобы сделать такое?
union
источник

Г

Георгий Торопов... in 🎄Embedded Group
точно!
источник

Г

Георгий Торопов... in 🎄Embedded Group
спасибо )
источник

P

Ponytale 🇷🇺 in 🎄Embedded Group
Георгий Торопов
а как выравнивание по 4 байтам сделать?
'там в строках только по 5 байт - ноль-терминированная
источник

Г

Георгий Торопов... in 🎄Embedded Group
Ponytale 🇷🇺
'там в строках только по 5 байт - ноль-терминированная
не понял ничего )))
источник

P

Ponytale 🇷🇺 in 🎄Embedded Group
Георгий Торопов
я хочу чтобы в switch() кейсы выбирались строками по 4 символа
в свитч допустимы только константы, известные на этапе компиляции
источник

Г

Георгий Торопов... in 🎄Embedded Group
Ponytale 🇷🇺
в свитч допустимы только константы, известные на этапе компиляции
ясно
источник

P

Ponytale 🇷🇺 in 🎄Embedded Group
Георгий Торопов
не понял ничего )))
"QWER" компилятор превратит в 'Q', 'W', 'E', 'R', '\0' - всего 5 байт
источник

Г

Георгий Торопов... in 🎄Embedded Group
Ponytale 🇷🇺
"QWER" компилятор превратит в 'Q', 'W', 'E', 'R', '\0' - всего 5 байт
теперь понял
источник