一、 全局变量 存储在数据段 当没有初始值时为0,static 静态局部变量 存储在数据段 当没有初始值时为0。
#include <stdio.h>
typedef int myint;
//全局变量 存储在数据段 当没有初始值时为0
float temp=22.556;
void func(void);
int main(void)
{
//auto默认的 自动变量 存储在函数栈 当没有初始值时为随机值
auto int a=10;//int a=110;//short long
//static 静态局部变量 存储在数据段 当没有初始值时为0
static int b;
//signed 有符号的 为默认的 最高bit位表示符号
signed int aa;//int aa;//
unsigned int bb;
char ch='a';//auto char ch='a'
const long ll=555;
b=2;
b=24;
printf("ll=%ld ,b=%d\n",ll,b);
//ll=66;///错误:向只读变量‘ll’赋值
func();
//寄存变量:优化效率
register int i;
for(i=0;i<10000000;i++)
{
;
}
printf("i:%d\n",i);
myint iii=555; //int iii
//sizeof:求变量或类型的空间字节数
printf("int iii size:%d %d\n",sizeof(iii),sizeof(myint));
return 0;
}
void func(void)
{
int a;
static short tt;
return;
}
二、变量大小
#include <stdio.h>
int main(void)
{
int i;//signed int i;
unsigned int ui;
short s;
char c;
long l;
long long ll;
float f;
double d;
printf("ui:%d\n",sizeof(ui));
printf("size i :%d s :%d l :%d ll :%d\n",sizeof(i),sizeof(s),sizeof(l),sizeof(ll));
printf("size c :%d f :%d d :%d\n",sizeof(c),sizeof(f),sizeof(d));
i=0xffffffff;
printf("i:%d\n",i);
i=0x7fffffff;
printf("max int:%d\n",i);
ui=0xffffffff;
printf("max unsigned int:%u\n",ui);
return 0;
}
运算结果如下:
ui:4
size i :4 s :2 l :8 ll :8
size c :1 f :4 d :8
i:-1
max int:2147483647
max unsigned int:4294967295