我看到一个奇怪的行为,我的位字段最终被填充了:
<head>
<link href="https://vjs.zencdn.net/7.3.0/video-js.css" rel="stylesheet">
</head>
<body>
<video id="my-video" class="video-js" controls preload="auto" width="640" height="264" poster="poster.jpg" data-setup='{"fluid": true}'>
<source src="/files/CHANGE_THIS/1080p" type='video/mp4'>
</video>
<script src="https://vjs.zencdn.net/7.3.0/video.js"></script>
</script>
</body>
当用 struct Test {
unsigned short a : 1;
unsigned short b : 15;
};
(或更高版本)用clang(经测试4.0.1和Apple的10.0.0)编译时,我进入https://github.com/arvidn/struct_layout:
-mmacosx-version-min=10.11
有了struct ::Test [2 Bytes]
--- 2 Bytes padding ---
(或更低),我得到:
-mmacosx-version-min=10.10
有人知道我违反了什么标准或规则吗?
谢谢!
答案 0 :(得分:1)
您使用的struct_layout
工具似乎依赖DWARF调试信息。您看到的差异并不反映数据布局的差异,仅反映在可用的调试信息中。
使用-mmacosx-version-min=10.10
将DWARF的版本限制为版本2,因为这就是macOS 10.10工具所能理解的全部。我希望通过指定-gdwarf-2
会得到类似的结果。