社区
C++ 语言
帖子详情
宏定义 定义结构体
睡醒了起来再睡
2011-10-24 10:13:09
看代码的时候 都是看到 typedef struct {int a; int b;}MYSTRUCT; 这样去定义一个结构体类型的别名 叫MYSTRUCT 但我试了一下 为什么#define就不能这样对结构体起个昵称呢???
这俩东西 差很多吗
...全文
807
8
打赏
收藏
宏定义 定义结构体
看代码的时候 都是看到 typedef struct {int a; int b;}MYSTRUCT; 这样去定义一个结构体类型的别名 叫MYSTRUCT 但我试了一下 为什么#define就不能这样对结构体起个昵称呢??? 这俩东西 差很多吗
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
睡醒了起来再睡
2011-10-25
打赏
举报
回复
[Quote=引用 2 楼 qq120848369 的回复:]
刚才看了一个帖子,也正好说明为什么不用define;
#define PA struct A*;
typedef struct A *PPA;
PA a,b; ==》 struct A *a,b;
PPA a,b; ==> struct A *a,*b;
[/Quote]
这个也说明不了为什么不能用宏吧 “PA a,b; ==》 struct A *a,b;”中的b 虽然不是指针 但也是A类型的对象啊
睡醒了起来再睡
2011-10-25
打赏
举报
回复
那为啥这样编译不过去呢 哪里不符合语法吗
#define MYSTRUCT struct{int a;int b;};
一叶之舟
2011-10-25
打赏
举报
回复
一个是类型定义,一个是宏定义,两者有本质上的区别。
小时了了
2011-10-25
打赏
举报
回复
如果你故意想让程序晦涩难懂当然可以这么写。
如果想写自己一个星期后还能看懂的代码那最好别这么写。
编译器是不是允许这么做和你应不应该这么做是两回事。
[Quote=引用 5 楼 daihenan 的回复:]
引用 2 楼 qq120848369 的回复:
刚才看了一个帖子,也正好说明为什么不用define;
#define PA struct A*;
typedef struct A *PPA;
PA a,b; ==》 struct A *a,b;
PPA a,b; ==> struct A *a,*b;
这个也说明不了为什么不能用宏吧 “PA a,b; ==》 stru……
[/Quote]
lxyppc
2011-10-25
打赏
举报
回复
为什么说明不了
PA a,b;
你的想定义两个A类型的指针,实际上前一个是指针,后一个是对象。出现了不符合期望的結果。
难道你设计的程序可以忽略指针和对象的差别
[Quote=引用 5 楼 daihenan 的回复:]
这个也说明不了为什么不能用宏吧 “PA a,b; ==》 struct A *a,b;”中的b 虽然不是指针 但也是A类型的对象啊
[/Quote]
shun_qizi_ran
2011-10-24
打赏
举报
回复
搜索一下#define和typedef的区别
qq120848369
2011-10-24
打赏
举报
回复
刚才看了一个帖子,也正好说明为什么不用define;
#define PA struct A*;
typedef struct A *PPA;
PA a,b; ==》 struct A *a,b;
PPA a,b; ==> struct A *a,*b;
qq120848369
2011-10-24
打赏
举报
回复
C语言就这样,明明符合typedef我们凭什么要用#define。
define是字面替换,typedef是C语言语法,两码事。
Linux 输入事件(input_event)
结构体
对应的所有
宏
定义
这个是Linux 输入事件所有
宏
定义
,从vscode追到的,可以通过EV_KEY这
宏
定义
追,不会追就直接下载文件吧。
C语言参考手册第五版
C语言参考手册中文第五版,pdf格式的!非常好的资料,不下载后悔一辈子!呵呵……
宏
定义
与
结构体
一:
宏
定义
1、不带参数的
宏
定义
: #define 标识符 字符串 例如:#define PI 3.1415926 说明: (1)宏名一般习惯用大写字母表示,但并非规定,也可以用小写 (2)使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量 (3)
宏
定义
是用宏名代替一个字符串,也就是做简单的置换,并不做正确性检查
宏
定义
时动态
定义
结构体
struct packet { char type; }; #define TAILQ_HEAD(name, type) \ struct name { \ struct type *tqh_first; /* first element */ \ struct type **tqh_last; /* addr of last next element */ \ } void test() { TAILQ_HEAD(, packet) outgoing;.
【C语言】
宏
定义
结构体
枚举变量的用法
补充学习一下C语言,方便STM32的学习
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章