如果我在C中有一个结构
typedef struct _a {
int aval;
} a;
a a_inst;
void main() {
a_inst.aval = 5;
}在本例中,我如何访问"aval“而不必键入a_inst.aval ??这是可能的吗?
发布于 2013-01-17 22:02:54
a_inst.aval指的是“结构a_inst的aval部分”。
当你想输入的时候,aval会引用"aval...?",这时编译器会变得暴躁并且拒绝合作。
对你的问题的回答是:不。
(当然,除非您开始使用#define / typedef /指针作为一种速记方法,此时您将陷入使代码可读性降低的危险境地。)
发布于 2013-01-17 22:03:14
除了#define或使用指针之外,没有。所以你可以这样做
#define AVAL a_inst.aval或
int * pAval= a_inst.aval但是有经验的程序员不会这么做。
发布于 2013-01-17 22:03:15
一种可能的方法是在此结构字段上使用指针。但是你需要
void main() {
int *p_aval = &a_inst.aval;
*p_aval=...; //access
}就个人而言,我更喜欢键入结构名称。它是明确的,不会造成伤害(就像输入更多的字符),并且不容易出现bug。
https://stackoverflow.com/questions/14380692
复制相似问题