Size: a a a

IT KPI C/C++ ХВ (не UB)

2021 March 25

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
это ж вне стандарта, гнушная фишка
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Vsevolod
это ж вне стандарта, гнушная фишка
Чито?
источник

A

András in IT KPI C/C++ ХВ (не UB)
Vsevolod
это ж вне стандарта, гнушная фишка
Так модна аналогічний прапорець і для мсвц поставити, і для клангу
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Vsevolod
это ж вне стандарта, гнушная фишка
Когда дефайн стал вне стандарта?))
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
Till Schneider
Когда дефайн стал вне стандарта?))
хедер
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Vsevolod
хедер
Так это забей, и у мсвц есть аналогичная хрень
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Он тут роли не играет
источник

YS

Y S in IT KPI C/C++ ХВ (не UB)
Vsevolod
это ж вне стандарта, гнушная фишка
Тебе скинули код под gcc, очевидно, что для него норм будут гну расширения
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
András
Так модна аналогічний прапорець і для мсвц поставити, і для клангу
лучше уже дефайн в систему сборки кинуть)
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Vsevolod
это ж вне стандарта, гнушная фишка
я тоже сначала не понял этого прикола, а потом посмотрел на флаги компиляции))0)
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Alexander Wizaral
я тоже сначала не понял этого прикола, а потом посмотрел на флаги компиляции))0)
На это и была фишка рассчитана
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
Y S
Тебе скинули код под gcc, очевидно, что для него норм будут гну расширения
он почему-то еще и не находит тот хедер в версии ниже 11
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
хотя по идеи должен
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Vlad Doc
Цпу ожидает что адрес инта выровнен по 4
А в случае упакованых структур, как будет происходить запись в поля?
Типа:
#pragma pack(push, 1)
struct Sample
{
uint8_t a;
uint32_t b;
uint32_t c;
}
#pragma pack(pop)

Sample s; // условно начинается с 0x00000000
s.b = 11; // 0x00000001 - 0x00000004
s.c = 11; // 0x00000005 - 0x00000008
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Пример грубый, но думаю мысль смог донести
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
Vsevolod
он почему-то еще и не находит тот хедер в версии ниже 11
источник

VD

Vlad Doc in IT KPI C/C++ ХВ (не UB)
Aleksey Belkevich
А в случае упакованых структур, как будет происходить запись в поля?
Типа:
#pragma pack(push, 1)
struct Sample
{
uint8_t a;
uint32_t b;
uint32_t c;
}
#pragma pack(pop)

Sample s; // условно начинается с 0x00000000
s.b = 11; // 0x00000001 - 0x00000004
s.c = 11; // 0x00000005 - 0x00000008
Подозреваю что запишет во временную потом будет мемцпу"шить. Но это так чисто догадка
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Vlad Doc
Подозреваю что запишет во временную потом будет мемцпу"шить. Но это так чисто догадка
Понял, провентелирую ещё этот вопрос
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
а, то дефайн не сохранялся, надо высыпаться
источник