社区
C语言
帖子详情
结构体定义里有宏定义,对吗?有什么意义?偶不懂,请高手指点,谢谢!
IamScout
2004-03-28 09:03:15
偶看源代码,发现有的程序有如下代码段:
struct aa{
int bb;
char cc;
#define DDD 0x00000001;
#define EEE 0x00000011;
………………
}
就是在结构体定义中有宏定义,偶不懂这是什么用法,有什么意义,在结构体在定义对象时不是有重复宏定义了吗?请高手解惑,谢谢!!!
...全文
577
13
打赏
收藏
结构体定义里有宏定义,对吗?有什么意义?偶不懂,请高手指点,谢谢!
偶看源代码,发现有的程序有如下代码段: struct aa{ int bb; char cc; #define DDD 0x00000001; #define EEE 0x00000011; ……………… } 就是在结构体定义中有宏定义,偶不懂这是什么用法,有什么意义,在结构体在定义对象时不是有重复宏定义了吗?请高手解惑,谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
darkstar21cn
2004-03-29
打赏
举报
回复
liao2001(知之为知之,不知为不知。。。):同感!无予补充。
liao2001
2004-03-29
打赏
举报
回复
从语言的角度来说,和结构体外定义的没有什么区别。
它的意义:告诉你(阅读源代码者),这几个宏将只用于这个结构体。
比方说:char *strcat(char *dest,const char *src)
那个const是干什么用的?就是告诉读者,不用当心那个入参会被修改,同时隐含“源串”的意思。
这些是程序员交流的手段,除非你的代码只是自己一个人看。
bshaozi
2004-03-29
打赏
举报
回复
我觉的宏定义的是内存地址,
在程序运行的时候将结构体储存在这个宏代表的地址内(个人意见)
moswawa
2004-03-29
打赏
举报
回复
可以用这种形式对齐.
tms320ad50
2004-03-29
打赏
举报
回复
可能在debug时有用吧
chenzhichao2008
2004-03-29
打赏
举报
回复
应该跟结构定义没什么区别的吧:
它也应该不是结构中的一个成员吧
#include<iostream.h>
#include"stdlib.h"
struct aa{
int bb;
char cc;
#define DDD 5
#define EEE 6
};
void main(void)
{
struct aa k;
cout<<k.DDD;//出错
cout<<DDD;//正确
system("pause");
}
ruihouwei
2004-03-29
打赏
举报
回复
liao2001(知之为知之,不知为不知。。。)说得是对的!:)果然是高手!
纠正chenzhichao2008(陈智超)的说法,这几个宏虽然是在结构体中第定义的,但不能说是结构体里面地成员!
所以像这样写:k.DDD是错的!
ruihouwei
2004-03-29
打赏
举报
回复
liao2001(知之为知之,不知为不知。。。)说得是对的!:)果然是高手!
纠正chenzhichao2008(陈智超)的说法,这几个宏虽然是在结构体中第定义的,但不能说是结构体里面地成员!
所以像这样写:k.DDD是错的!
IamScout
2004-03-28
打赏
举报
回复
不好意思,偶手顺了一下。
不过偶还是不明白,例如这样做有什么好处,再者,我看结构体中定义了宏,下面也没有用到。
zhangfjj
2004-03-28
打赏
举报
回复
#define DDD 0x00000001;
#define EEE 0x00000011;//后面怎么有分号呢?
yzwpf
2004-03-28
打赏
举报
回复
意义在于一般这样定义的DDD ,EEE表示只用于该结构,你试试在结构体外看能不能使用DDD。
xiaonanln
2004-03-28
打赏
举报
回复
据我个人观察,这和在外面申请没有任何区别
IamScout
2004-03-28
打赏
举报
回复
首先声明程序绝对是对的。
《C深度解析》第7、8章 结构体/共用体/枚举,杂项(自动类型转换、大小端序等)
第7章:1. 结构体
结构体定义
、访问、传参,结构体对齐(offsetof宏、contaner_of宏),结构体内嵌函数指针,程序分层,模块化等。2. 共用体共用体与结构体的异同、共用体的作用、共用体举例3. 枚举第8章:自动类型转换、大小端序、typedef、编译器优化、extern C、程序调试、变参函数、dowhile(0)、内嵌汇编、调试版与发行版、断言
C语言结构体
里
的成员数组和指针
2014年4月1日陈皓 发表评论阅读评论 23,998 人阅读 单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章。 为了方便你把代码copy过去编译和调试,我把
查看结构体成员的大小和偏移地址的方法
这个是不小心被我撞见的,看到#define
宏定义
比较特别,仔细看了一下,发现原来有如此作用(
请
不要怪我少见多怪哦)。自己编写一小程序试之,贴出代码与运行结果与大家共享。代码:#include #define PACKVALUE 4#pragma pack(push)#pragma pack(PACKVALUE) typedef struct{
线性表的基本操作
在粗略学习一遍数据结构之后,压根就没有搞懂其中的逻辑,后来了明白学习数据结构的重要性,打算再利用一大段空闲时间重新拾起数据结构的学习。还站在IT行业门口的我,打算一步一步爬进去,跪着欣赏大佬的笔记和心得。对于数据结构初学者们来说,可能对你们有所帮助,如果有幸得到大佬的
指点
,也是在下吉人天相啊。 线性表的一些基本操作(同时补充下部分功能实现的逻辑和原理): 构造线性表结构-----相当于C语言中的结构体,把实例的结构抽取、打框、定义类型、限制范围,最后取上别名 初始化线性表-----对定...
该不会还有人不懂用C语言写扫雷游戏吧
该不会有人还不懂用C语言实现扫雷游戏吧?如果有,那我教你!
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章