ПК
A{}.d
и B{}.d
- это поля а не структуры (типы). В данном случае нам гарантируется, что если мы приведём A
к B
, то их поля d
будут храниться в одном и том же месте.Size: a a a
ПК
A{}.d
и B{}.d
- это поля а не структуры (типы). В данном случае нам гарантируется, что если мы приведём A
к B
, то их поля d
будут храниться в одном и том же месте.AD
-fno-strict-aliasing
и без выдал разные результаты для test1()
— 8 и 9.AR
ПК
ПК
AR
A
и B
pointer-interconvertible по первому полю выше показано.AR
in
и out
не пересекается, вполне очевидно.ПК
A
и B
pointer-interconvertible по первому полю выше показано.A a
и a.d
are pointer-interconvertible потому что второй объект является первым полем первого.a.d
и b.d
не pointer-interconvertible потому что нет там правила для двух разных полей (если есть - процитируй).A a
и B b
не pointer-interconvertible, потому что транзитивность не выполняется.AR
SS
ПК
AR
A
и double
pointer-interconvertible?SS
A
и double
pointer-interconvertible?ПК
A
и double
pointer-interconvertible?A
и double
, а объекты A a
и a.d
. Конкретные два объектаAR
SS
ПК
AR
ioctl
? С кучей недоопределённых структур?ПК
ioctl
? С кучей недоопределённых структур?AR