智能终端定制开发 ad
MTK/瑞芯微/高通-Android,智能模块/智能终端方案商

深度定制各类智能终端和智能硬件产品,提供硬件选型咨询、参考设计、元器件推荐、驱动开发、行业模块集成、操作系统定制与算法集成等软硬件定制服务。
contact.aspx

Android核心板产品覆盖2G、3G、4G通讯,双核、四核、八核CPU,可选的平台有MTK6580、MTK6737、MTK6750等,Android版本有5.1 6.0 7.0等。
contact.aspx

可广泛应用于低端智能POS、安防监控、车载设备、低端智能机器人、智能家居、智能硬件、工业智能手持设备、低端智能对讲设备、低端警务或执法设备、智能穿戴、贩卖机、物流柜、智能门禁系统等行业和设备。
contact.aspx

可提供以太网转串口透传,WIFI转串口透传,蓝牙转串口透传,CAN总线模拟量控制输出模块等。
contact.aspx

带3G或4G通讯功能,运行android系统,有多个串口,可以外挂各种模块:条码扫描、RFID、指纹识别、身份证识别、磁条卡、ID卡、GPS/北斗模块等。
contact.aspx

具有4G通讯功能,多个RS232或RS485接口,以太网接口,USB接口,CAN接口,多个AD输入。基于Android系统智能平台,方便APP应用开发。器件严格选型,运行稳定,质量可靠。
contact.aspx

C语言中类型转换和字节对齐
[手机开发] 2009-03-21

这两天浏览了一下《C专家编程》这本经典著作,小有收获,贴出来卖弄一下,呵呵!
  首先是关于类型转换:
  先看这样一段代码:
struct student
{
    int num;
    char name[20];
    char sex;
    int score;
};
void main()
{
    long lTemp = -1;
   
    if(lTemp < sizeof(student))
    {
        printf("-1 is less\n");
    }else
    {
        printf("-1 is larger\n");
    }
}
这段代码的输出结果会是什么呢?应该会有人认为输出“-1 is less”,因为sizeof(student)的值至少是正数,比-1大啊。这是比较正常的,我以前也是这样认为。但事实并非如此。执行这段代码,会发现输出“-1 is larger”。这是为什么呢?
    其实,原因就出在类型转换上。sizeof()函数的返回值是unsigned long型,而lTemp是long型,两者类型不匹配,于是long自动转为unsigned long型,于是-1就变成了一个很大很大的数FFFFFFFF,自然就输出了“-1 is larger”

    其次是字节对齐问题:
    请问上文中sizeof(student)的返回值到底是多少呢?也就是说student这个结构体占用了多少内存呢?
    如果你不知道字节对齐的话,那你的回答很有可能会是4+20+1+4=29个字节。但实际情况并不是这样。在内存中,处理器是以四个字节为单位进行存取 的,student中的成员变量sex定义为char型,但它在内存中却占用了四个字节,只不过是后面三个字节是空的,没被使用而已

文章出处:http://www.diybl.com/course/3_program/c++/cppjs/200847/108584.html

[手机开发添加评论 | 评论/阅读(0/380)
评论
昵称
主页
内容
递交


Copyright @ 我的开发笔记     2008 - 2017         粤ICP备19155526号-1