单片机中各个数据类型在内存中占的字节数

单片机中各个数据类型在内存中占的字节数:

char size = 1
short int size = 2
int size = 2
long int size = 4
float size = 4


源代码


/********************************************

  main.c文件

*******************************************/


#include <reg51.h>
#include <stdio.h>
#include <string.h>
#include "uart.h"
//#include "fun.h"

//#define myprintf PC_select_serial();printf

/*********************************************

     ADC模数转换

*********************************************/
#define  TEMPCH         0x00     //P1.0
#define  DOCH           0x01     //P1.1
#define  pHCH            0x02     //P1.2

typedef struct B
{
    float a;
    float b;
}A;

void main()
{
    unsigned char b[8]=0;
    float a = 2.9999;
    float h = -3.4521;
    A HH;
    int c = sizeof(char);
    init_uart();
//    putstr_printf(b);
//    bb = b;
    printf("char size = %d\n",c);
    c = sizeof(short int);
    printf("short int size = %d\n",c);
    c = sizeof(int);
    printf("int size = %d\n",c);
    c = sizeof(long int);
    printf("long int size = %d\n",c);
    c = sizeof(float);
    printf("float size = %d\n",c);
    memcpy(b,&a,4);
    memcpy(&b[4],&h,4);
    HH = *(A *)b;
    printf("HH.a = %f\n",HH.a);
    printf("HH.b = %f\n",(10-HH.b));
    while(1);
}


/******************************************************

uart.c文件

******************************************************/

#include <reg51.h>
#include "define.h"


/*****************************************

     

******************************************/
void init_uart()
{
    SCON = 0x50;
    TMOD |= 0x20;
    PCON = 0x80; //     pcon =0x80 波特率翻倍
    TH1  = 0xEE;
    TL1  = 0xEE;
    TI   = 1;
    TR1  = 1;
}

void putstr_printf(char *pStr)
{
    TI = 0;
      while (*pStr != '\0')
    {
        SBUF = *pStr;
        while (!TI);
        TI = 0;
        pStr++;
    }
}


/**************************************

uart.h文件

*************************************/

void init_uart();
void putstr_printf(char *pStr);


/************************************

define.h文件

***********************************/

#define uchar unsigned char
#define uint unsigned int

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值