专栏首页Android小知识NDK启航篇——C语言基础(联合体)

NDK启航篇——C语言基础(联合体)

今天写一下联合体union(比较简单)。

什么是联合体?

  • 不同类型的变量,共同占一段内存(相互覆盖),联合体变量任何时刻只有一个变量存在,所以也叫共用体

联合体的作用

  • 节省内存

联合体的大小

  • 联合体变量的大小等于最大的成员所占的字节数

联合体的定义

  • union 名字{};

示例代码如下

union MyValue{
  int y;
  int x;
  double z;
};
void main(){
  union MyValue d1;
  d1.x = 90;
  d1.y = 100;
  d1.z = 99.9;//最后一个赋值的有效
 
  getchar();
}

enum 枚举

  • 固定的数据
  • 枚举就是一种数据类型
  • 列举所有的情况
  • 限定值,保证取值的安全性
enum Day{
  Monday,
  Tuesday,
  Wednesday
};
//不写默认相当于
enum Day{
  Monday = 0,
  Tuesday = 1,
  Wednesday = 2
};

void main (){
  //枚举的值必须是括号中的值
  enum Day d = Monday;
  printf("%#x,%d\n",&d,d);
 /* int i = 0;
  enum Day *p = &d;
  for(;i<3;i++){
   printf("%#x,%d\n",p,*p);
    p++;
}*/
  getchar();
}

联合体的知识点到这里就写完了,明天写文件的读写IO操作, 这是C语言最后的部分喽,提前给自己鼓个掌?。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NDK启航篇——C语言基础

    longzeqiu
  • NDK启航篇——C语言基础(结构体)

    longzeqiu
  • NDK启航篇——C语言基础(结构体补充)

    longzeqiu
  • NDK启航篇——C语言基础(指针)

    如上代码运行你会发现取出来的值为0.00000,原因就是指针的类型不匹配(通过4字节读取8字节的内容)

    longzeqiu
  • NDK启航篇——C语言基础(字符串)

    longzeqiu
  • NDK启航篇——C语言基础(内存分配)

    longzeqiu
  • NDK启航篇——C语言基础(函数指针)

    这里是彩蛋哦,肯定有人会问这就结束了,指针函数呢? ?,指针函数和函数指针并没有什么关系,非常简单,就是函数的返回值是指针而已,前面已经讲过指针是什么了所以就不...

    longzeqiu
  • NDK启航篇——C语言终章(文件IO操作)

    longzeqiu
  • Android面试指南:在市场初级开发饱和环境下,如何登上BAT这座山成为巅峰者年薪50W+?

    在我刚加入现在这个团队时,那会儿才毕业大半年,我就在思考这个问题,只不过当时更专注于Android开发领域:Android开发的核心竞争力是什么?我有一个专门的...

    Android技术干货分享
  • Android Studio 4.0 稳定版发布了

    Android Studio 4.0(2020年5月) 更新啦,此版本包含了各种新功能和改进,还有一些废弃配置。

    GSYTech
  • Linux下快速构建Android编译环境

    通常,开发苹果系列的软件均需要使用一些专有开发工具,比如xcode,而此工具必须运行在Mac OS X设备上(当然你也可以尝试各种黑苹果的方式),所以不论是对于...

    BGBiao
  • 低学历没饭吃?一个老Android的心酸面试历程,同是六年菜鸟偏偏我最难熬

    因为公司要搬离上海,所以只能出来找工作了,这段时间被虐的够惨的,一个学历就被搞死了,同事工作经验跟我差不多,都是6年的老菜鸟,本科,投了10家面了两家,我投了几...

    Android技术干货分享
  • Unity与 SO 交互 ☀️| 详细讲解 怎样通过 Android Studio 生成一个.so文件 并简单调用!

    本文章是Unity与 SO 交互的内容,该专栏还有多篇优质内容在等待你观看,现在点击右上角点击这个————????订阅专栏???? 就可以免费观看多篇相关内容...

    呆呆敲代码的小Y
  • android studio2.3如何编译动态库的过程详解

    最近在工作中需要编译android下的动态库,本以为是一件简单的事,没想到因为工具,以及google本身被墙的原因,折腾了好久。

    砸漏
  • android ndk之hello world

    前言:Android NDK r7及以上的版本已经集成了Cygwin编译环境,也就是说,我们完全可以抛弃庞大的Cygwin了。 r6及以下版本,也可以抛弃几个G...

    xiangzhihong
  • 我的非线性视频编辑器MiaoVideoCut(1) --- 视频基础知识及环境搭建

    所谓视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.26...

    瑶瑶
  • Mac下Android Studio 3.x的NDK开发环境搭建

    sean_yang
  • android Ndk JNI 入门

    相信很多人对于NDK 开发都是懵逼的,比如都知道把加密的逻辑以及密钥放在so文件中,但是你知道怎么生成so文件吗?你知道开发jni吗?你熟悉jni语法吗?怎么配...

    Anymarvel
  • Android JNI学习(二)——实战JNI之“hello world”

    首先在Android Studio创建一个Android项目,包名为gebilaolitou.ndkdemo

    隔壁老李头

扫码关注云+社区

领取腾讯云代金券