单片机c语言中float占几个字节?那double呢??和C语言(我知道分别是4、8字节)大概不同吧?

如题所述

第1个回答  推荐于2017-09-14
int 2 字节
long 4 字节
float 4 字节
double 8 字节
char 1字节

不同的编译器可能会有区别。追问

用的是KEIL编译器,单片机C语言,你用过么

追答

unsigned char s,*p;
unsigned int *q;
void data_len(void)
{
s=sizeof(unsigned char);
s=sizeof(unsigned short);
s=sizeof(unsigned int);
s=sizeof(unsigned long);
s=sizeof(unsigned long long);
s=sizeof(float);
s=sizeof(double);
s=sizeof(p);
}
你可以用这个程序测试一下你的编译器。我用的是IAR的。
在keil中,
1、指针大小是3个字节(即sizeof(p)等于3)
2、不支持unsigned long long;
得出:

char占用1个字节

short int占用2字节

int占用4字节

long占用4字节

long int占用4字节

float占用4字节

double占用8字节

本回答被提问者采纳
相似回答