struct S { unsigned char ch[2]; };
int main(void)
{
_Static_assert( sizeof(struct S) == 2, "size was not 2");
}
使用带有ABI apcs-gnu
(又名OABI或EABI版本0)的ARM的GCC(各种版本),我得到断言失败。事实证明结构的大小是4
。
我可以使用__attribute__((packed))
来解决这个问题。但我的问题是:
4
的基本原理是什么?在ARM网站上,我找到了aapcs
(EABI第5版)的文档,该文档将此结构指定为大小为2;但我找不到任何关于apcs-gnu
的内容。
答案 0 :(得分:2)
这是特定于海湾合作委员会的决定,以权衡业绩规模。它可以用 var ss = SpreadsheetApp.openById("SpreadsheetID");
var sheetMAT = ss.getSheetByName("Sheet3");
var data = sheetMAT.getRange(3, 2, sheetMAT.getLastRow() - 1, 4).getValues();
var temporaryData = [];
var dataReadyLine = [];
function getReadyLine() {
var rawData = sheetMAT.getRange(3, 2, sheetMAT.getLastRow() - 1, 4).getValues();
Logger.log(rawData[0][3]);
for (var i=0; i<=rawData.length; i++) {
if (rawData[i][3] === "A Ready Line") {
temporaryData.push(data[i][1], data[i][0]);
dataReadyLine.push(temporaryData);
temporaryData = [];
}
}
return dataReadyLine;
};
覆盖。
摘自source code:
-mstructure-size-boundary=8