社区
C++ 语言
帖子详情
宏定义 定义结构体
睡醒了起来再睡
2011-10-24 10:13:09
看代码的时候 都是看到 typedef struct {int a; int b;}MYSTRUCT; 这样去定义一个结构体类型的别名 叫MYSTRUCT 但我试了一下 为什么#define就不能这样对结构体起个昵称呢???
这俩东西 差很多吗
...全文
857
8
打赏
收藏
宏定义 定义结构体
看代码的时候 都是看到 typedef struct {int a; int b;}MYSTRUCT; 这样去定义一个结构体类型的别名 叫MYSTRUCT 但我试了一下 为什么#define就不能这样对结构体起个昵称呢??? 这俩东西 差很多吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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语言语法,两码事。
宏
定义
与
结构体
本文详细介绍了C语言中的
宏
定义
及其使用方法,包括不带参数和带参数的
宏
定义
,以及
宏
定义
与函数的区别。此外,还深入探讨了
结构体
的概念、
定义
方式及
结构体
成员的引用方法。
结构体
中进行
宏
定义
的意图
本文探讨了在C语言中
宏
定义
与
结构体
的作用域问题,特别是在
结构体
内重新
定义
宏时可能出现的redefine警告。通过示例代码,展示了如何在
结构体
内部
定义
宏,并解释了这种做法对源代码可读性和变量赋值的影响。
c语言
宏
定义
处理
结构体
,请教c语言
宏
定义
与
结构体
该程序展示了在C语言中如何
定义
一个
结构体
类型RampGen_t,并使用
宏
定义
RAMP_GEN_DAFAULT初始化
结构体
变量LRSpeedRamp。
结构体
包含成员变量如计数器、比例因子和计算函数指针等,
宏
定义
用于快速设置默认值。
C项目中变量、
宏
定义
、
结构体
等声明
定义
位置问题(头文件、源文件)
本文探讨了C项目中关于变量、源文件
宏
定义
现象、函数声明是否加extern以及
宏
定义
、
结构体
、typedef的位置选择。全局变量应
定义
在.c文件中,避免重复
定义
错误。源文件前的
宏
定义
用于避免代码重复。函数声明默认为extern,不需要额外标识。宏、
结构体
、typedef的放置应根据其使用范围,单个文件使用则放于该文件,多文件使用则放于头文件,尽管可能引发重复
定义
警告。
结构体
和
宏
定义
本文详细解析了C语言中的预处理指令,包括
宏
定义
的使用方式、
宏
定义
的嵌套规则、条件编译的语法及作用,并深入探讨了
结构体
的
定义
、初始化方法及成员访问方式等内容。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章