typedef和define

typedef的用法
typedef关键字可以用于给数据类型定义一个别名,即可以给long long
定义成ll,也可以给结构体定义,当你定义了一个结构体时,每次创建一个结构体都要使用struct+结构体名的方式,而用了typedef之后,只要s使用定义好的结构体别名就可以创建了。例如

typedf struct student{
     char name[6];
     int num[10];
     }jgt;

该代码实际完成了两个操作:
1、定义结构体:

struct strudent{
     char name[6];
     int num[10];
     }jgt;

2、为这个结构体起了个新的名字:

typedef struct student jgt;

因此你可以直接使用jgt这个别名直接进行定义,比如:

jgt student2;

再比如定义指针变量:

typedef cchar char *;
ccchar a1,b1;

即定义了a1,b1为char *类型的变量。
define的用法

define相较于typedef而言显得比较笨拙,只能进行简单的操作从而导致自己挖坑把自己埋了,比如

#define Math(a) a*a*a
a=10+5;
Math(a);

这里Math的计算方法是10+510+510+5=115.而不是151515.
再比如:

#define cchar char *
ccchar a1,a2;

在这里替换后成为:

ccchar *a1,b1;

即a1为指针变量而b1不是。

全部评论

相关推荐

点赞 评论 收藏
分享
小厂面经,也是我的处女面(30min)1.自我介绍2.spring boot的自动装配原理(好多类和接口的单词都忘了全称是啥了,就说了记得的单词,流程应该说对了吧)3.有用过redis吗?主要是用在实现什么功能(说了技术派用redis的zset来实现排行榜)5.有了解过Redisson吗?讲一下对于分布式锁的了解以及在什么场景下应用(说了秒杀场景)6.对mysql有了解吗?包括它的索引优化和创建(把想起来的全说了)7.了解设计模式吗?比如单例模式,为什么要使用单例模式,它的优点是什么(昨天刚看的设计模式)8.工厂模式有了解吗?主要的使用场景是?(也是昨天刚看的)9.场景题:有7个服务器,需要在早上十点定时的向数据库中的用户表中的用户发短信,如果做到发送的消息不重复,且如果发送失败了需要知道是到哪个用户失败了,这样下次就直接从这个用户开始(我答了用spring task来实现定时,用分布式锁来保证只有一份服务器可以发送消息,用消息队列来存储消息,然后用消息确认机制来保证错误信息的记录,以及在数据库或者业务层面完成消息消费的幂等性)10.场景题:如果在系统启动的时间就将数据库的所有用户相关的信息都读到一个hashmap中(这个没啥思路,没答好)27届的投了一个星期终于有一个面试了,大部分公司都只招26的
inari233:已oc,拒了
查看9道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务