774|7

1583

帖子

2

资源

纯净的硅(高级)

如何定义const 类型的结构体变量 [复制链接]

我定义了一个结构体,我希望所有的定义都是放在代码区的不是RAM内存中。

 

 

typedef struct 
{
   const int id;
   const char *name;
   struct NodeType *Link;
}NodeType;


const char* str1="tom";

NodeType node1,node2,node3;

main{
        node1.id = 1;
		node1.name = str1;
}

所有的定义都没有问题,但是到了初始化node1.id = 1;这里就无法通过了。编译器用的是keil 5

 


回复

6008

帖子

210

资源

版主

const NodeType node1={0, "tom", &node2};

应该是这样的,并且在声明的时候就要初始化。里面不用的成员不用指定const.

既然你想放到常量区,就不可能在主函数里初始化了

点评

好像不可以使用指针。  #144: a value of type "NodeType *" cannot be used to initialize an entity of type "const struct NodeType *"  详情 回复 发表于 2021-7-9 14:52
个人签名

EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,上班摸鱼场,释放压力好地方!商家勿入!加群暗号:喵


回复

1568

帖子

3

资源

版主

你结构体中有const类型的,那创建的时候就要初始化,像楼上那样创建就可以了。


回复

1583

帖子

2

资源

纯净的硅(高级)


const typedef struct 
{
   const int  id;
	 const char *name;
	 const struct NodeType *Link;
}NodeType;

/*=====================================*/


const  NodeType node3={2,"",NULL};
const  NodeType	node2={1,"jack",&node3};
const  NodeType node1={0,"tom",&node2};

非常感谢,刚刚试过,只有const  NodeType node3={2,"",NULL};这句是可以的,其它的都无法编译。

point.jpg


回复

1583

帖子

2

资源

纯净的硅(高级)

我以为是&node3这个符号的问题,看来不是。

point.jpg 看来在结构体中无法使用指针???


回复

1583

帖子

2

资源

纯净的硅(高级)

lcofjp 发表于 2021-7-9 12:39 const NodeType node1={0, "tom", &node2}; 应该是这样的,并且在声明的时候就要初始化。里面不用 ...

好像不可以使用指针。

 #144: a value of type "NodeType *" cannot be used to initialize an entity of type "const struct NodeType *"


回复

6008

帖子

210

资源

版主

因为你定义的结构体语法不对,我在上面没说以为你帖子里笔误。

typedef struct _NodeType
{
   const int id;
   const char *name;
   struct _NodeType *Link;
}NodeType;

 

赞赏

1

查看全部赞赏

个人签名

EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,上班摸鱼场,释放压力好地方!商家勿入!加群暗号:喵


回复

4215

帖子

1

资源

五彩晶圆(初级)

const要初始化

个人签名

默认摸鱼


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表