Android NDK开发之旅6--C语言基础--联合体与枚举
2017-03-17 本文已影响216人
小楠总
联合体(共用体)
不同类型的变量共同占用一段内存(相互覆盖),联合变量任何时刻只有一个成员存在,节省内存
联合体变量的大小=最大的成员所占的字节数(字节对齐 )
比喻:同穿一条裤子
union MyValue{
int x;
int y;
double z;
};
void main(){
union MyValue v;
v.x = 90;
v.y = 100; //最后一次赋值有效
v.z = 23.8;
printf("%d,%d,%lf\n", v.x, v.y, v.z);
system("pause");
}
JNI头文件中的联合体:
typedef union jvalue {
jboolean z;
jbyte b;
jchar c;
jshort s;
jint i;
jlong j;
jfloat f;
jdouble d;
jobject l;
} jvalue;
枚举(enumeration)
枚举(列举所有的情况),限定值的取值范围,保证取值的安全性。
enum Day{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
void main(){
enum Day d = Tuesday;
printf("%#x,%d\n", &d, d);
system("pause");
}
如果觉得我的文字对你有所帮助的话,欢迎关注我的公众号:
我的群欢迎大家进来探讨各种技术与非技术的话题,有兴趣的朋友们加我私人微信huannan88,我拉你进群交(♂)流(♀)。