嵌入式linux c语言引用设计

2019-07-13 00:33发布

未完持续
4.1 csb@csb-ThinkPad-E430c:~/code/c$ cat float.c #include void main() { float a; double b; a=33333.333333333333333;//float,有效数字7b=33333.333333333333333;//double,有效位数16 printf("a=%f b=%f ",a,b); } csb@csb-ThinkPad-E430c:~/code/c$ ./float a=33333.332031 b=33333.333333
字符常量 字符常量只能用单引号括起来,不能用双引号或其他括号 字符常量只能是单个字符不能是字符串 '5'=5
枚举类型 定义枚举变量使其的取值被限定在一个有效范围; enum name{ 所有取值; }; enum sgp_type{ SGP_QUICK=2, SGP_READ=9, SGP_CACHE=19, SGP_WRITE=64, };

void swap(int *p1,int *p2) { int *temp; temp=p1; p1=p2; p2=temp; } 指针作为函数参数 函数调用中发送的数据传送是单向的,只能吧实参的值传送给形参,而不能把形参的值反向传送给实参 下面例子具体说明这个问题: #include void swap(int *p1,int *p2) { int temp; printf("swap: addr:p1=%p,p2=%p ",p1,p2); temp=(*p1); *p1=*p2; *p2=temp; printf("addr: temp=%p,p1=%p,p2=%p ",&temp,&(*p1),&(*p2));//p1,p2指向的地址没改变,指向地址的内容变了 } void swap1(int *p1,int *p2) { int *temp; printf("swap1 addr:p1=%p,p2=%p ",p1,p2); temp=p1; p1=p2; p2=temp; printf("addr:temp=%p,p1=%p,p2=%p ",&(*temp),&(*p1),&(*p2));//p1p2是形参指向地址改变了,p3p4是实参,指向地址没有改变 printf("value:temp=%d,p1=%d,p2=%d ",*temp,*p1,*p2); } void main() { int a=10,b=20; int *p3,*p4; p3=&a; p4=&b; printf("before swap "); printf("a=%d,b=%d,a=%p,b=%p,p3=%p,p4=%p ",a,b,&a,&b,&(*p3),&(*p4)); swap(p3,p4); printf("swap a=%d,b=%d,a=%p,b=%p,p3=%p,p4=%p ",a,b,&a,&b,&(*p3),&(*p4));   *p3=10; *p4=20; swap1(p3,p4); printf("swap1 a=%d,b=%d,a=%p,b=%p,p3=%p,p4=%p ",a,b,&a,&b,&(*p3),&(*p4)); }