首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C中,如何在不引用变量结构实例的情况下访问变量?

在C中,如何在不引用变量结构实例的情况下访问变量?
EN

Stack Overflow用户
提问于 2013-01-17 21:57:32
回答 5查看 145关注 0票数 0

如果我在C中有一个结构

代码语言:javascript
复制
typedef struct _a {
    int aval;
} a;

a a_inst;

void main() {
    a_inst.aval = 5;
}

在本例中,我如何访问"aval“而不必键入a_inst.aval ??这是可能的吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-17 22:02:54

a_inst.aval指的是“结构a_instaval部分”。

当你想输入的时候,aval会引用"aval...?",这时编译器会变得暴躁并且拒绝合作。

对你的问题的回答是:不。

(当然,除非您开始使用#define / typedef /指针作为一种速记方法,此时您将陷入使代码可读性降低的危险境地。)

票数 1
EN

Stack Overflow用户

发布于 2013-01-17 22:03:14

除了#define或使用指针之外,没有。所以你可以这样做

代码语言:javascript
复制
#define AVAL a_inst.aval

代码语言:javascript
复制
int * pAval= a_inst.aval

但是有经验的程序员不会这么做。

票数 1
EN

Stack Overflow用户

发布于 2013-01-17 22:03:15

一种可能的方法是在此结构字段上使用指针。但是你需要

代码语言:javascript
复制
void main() {
  int *p_aval = &a_inst.aval;
  *p_aval=...; //access
}

就个人而言,我更喜欢键入结构名称。它是明确的,不会造成伤害(就像输入更多的字符),并且不容易出现bug。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14380692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档