我正尝试使用uint8_t
字段将structure
缓冲区类型转换为bit
,如下所示。
#include<stdio.h>
#include<inttypes.h>
struct msg{
uint64_t field:56;
};
void main()
{
uint8_t buf[8]={0x7,0x6,0x5,0x4,0x3,0x2,0x1};
struct msg *m = buf;
printf("buf=%"PRIx64"\n",m->field);
}
但是我得到的输出如下。
实际输出:
buf=1020304050607
预期输出:
buf=7060504030201
类型转换时我做错什么了吗?
答案 0 :(得分:1)
您可以使用联合体来提高可移植性,而不必进行指针调整
var xls = new ActiveXObject ( "Excel.Application" )
var handle = xls.Workbooks.Add
var arrayOverskrift = new Array('INITIALER','TEAMNAVN','UDDANNELSE_NAVN','UDD_START','UDD_SLUT')
var i=0
//Indsætter overskrift
for (j=0;j<arrayOverskrift.length;j++)
{
value = arrayOverskrift[j]
xls.Cells( i+1, j+1).Value = value
}
i++
var y = arrayOverskrift.length
while(rs.eof != true)
{
for (j=0;j<arrayOverskrift.length;j++)
{
value = replaceNullFromDatabase(""+rs(arrayOverskrift[j]))
xls.Cells( i+1, j+1).Value = value
}
i++
rs.moveNext
}
rs.close()
conn.close()