当前位置: 首页 > news >正文

typedef区分结构体类型和结构体变量

结构体类型和变量比较容易混淆的,下面我们就来看下如何区分。

    数据类型别名:


        数据类型起别名:


          

u8  --- unsigned char
u16 --- unsigned short
u32 --- unsigned int typedef 关键字,给类型起别名; 数据类型的前面有typedef 那么后面的名称就是别名。格式:typedef 数据类型 别名;typedef unsigned char u8;


                
        给结构体类型起别名:前面有typedef的是类型别名


            第1种:先定义再起别名
              

struct book
{unsigned int bookNumber;char bookName[30];char writer[20];float price;int hot;int kc;
};// 结构体类型名:struct booktypedef struct book BK;  // 别名建议用大写使用:BK b5;struct book b6;


                
            第2种:在定义的时候直接起别名
                          
                

typedef struct book
{unsigned int bookNumber;char bookName[30];char writer[20];float price;int hot;int kc;
}BK;使用:BK b5;struct book b6;		

    
                    
            第3种:不建议,省略结构体名称
                
            

typedef struct 
{unsigned int bookNumber;char bookName[30];char writer[20];float price;int hot;int kc;
}BK;使用:只能用别名BK b5;


                


    结构体变量定义:前面没有typedef 是空间名称。


        第1种:先定义类型在定义变量
            定义结构体类型            
            结构体类型 变量名;
            
            

struct book
{unsigned int bookNumber;char bookName[30];char writer[20];float price;int hot;int kc;
};			int main()
{struct book b1;b1.bookNumber = 1;strcpy(b1.bookName,"C语言");strcpy(b1.writer,"谭浩强");b1.price = 34.5;b1.hot = 3;b1.kc = 30;// 访问:printf("%d %s %s %.2f %d %d\n",b1.bookNumber,b1.bookName,b1.writer,b1.price,b1.hot,b1.kc);return 0;
}


            
        第2种:在定义类型的时候直接定义变量
           

struct book
{unsigned int bookNumber;char bookName[30];char writer[20];float price;int hot;int kc;上
}b1;// 使用:b1是变量,前面没有typedefint main()
{b1.bookNumber = 1;strcpy(b1.bookName,"C语言");strcpy(b1.writer,"谭浩强");b1.price = 34.5;b1.hot = 3;b1.kc = 30;// 访问:printf("%d %s %s %.2f %d %d\n",b1.bookNumber,b1.bookName,b1.writer,b1.price,b1.hot,b1.kc);return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
  • 数据结构(Java实现):栈和队列相关练习题
  • 人工智能的可解释性(XAI) | 使用LIME
  • 【qml实现TCP服务器】
  • 滑膜观测器
  • 网络爬虫--生成假数据
  • 【零知识证明】构建第一个zk
  • python-带空格的数字层三角形
  • SQL视图:简化复杂查询的利器
  • 详细说一下MVCC
  • 电脑强制退出程序快捷键
  • redis内存数据库的专业术语雪崩、击穿、穿透的名词解释
  • 二分法介绍
  • Python生成指定数量的随机XML文件
  • 572. 另一棵树的子树
  • 分享的文章《人生如棋》
  • [ JavaScript ] 数据结构与算法 —— 链表
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • extract-text-webpack-plugin用法
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • underscore源码剖析之整体架构
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 聊聊directory traversal attack
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 阿里云服务器如何修改远程端口?
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (LeetCode 49)Anagrams
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (附源码)php新闻发布平台 毕业设计 141646
  • (三) diretfbrc详解
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (实战篇)如何缓存数据
  • (顺序)容器的好伴侣 --- 容器适配器
  • (一)插入排序
  • (一)认识微服务
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .Net 6.0 处理跨域的方式
  • .NET Core跨平台微服务学习资源
  • .Net Memory Profiler的使用举例
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .NetCore 如何动态路由
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .NET未来路在何方?
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [C#]winform基于opencvsharp结合Diffusion-Low-Light算法实现低光图像增强黑暗图片变亮变清晰
  • [C++]: std::move
  • [CSS]CSS 字体属性
  • [CTF]2022美团CTF WEB WP