【发布时间】:2013-06-25 21:36:06
【问题描述】:
我有多个 typedef struct box 实例,所以 box box1、box box2 等。 结构的成员是长度、宽度、高度等。
typedef struct
{
int width;
int height;
} box;
box box1;
box box2;
如何创建一个对每个宽度成员进行操作的函数 盒子实例?我的困惑是如何将指针传递给 typedef 结构成员 适用于所有盒子实例。我知道如何将指针传递给特定的 像 box1.width 这样的实例成员,但是如何传递 .width 然后做
box1.width=value;
box2.width=value;
box3.width=value;
在函数内?
【问题讨论】:
-
你不能。没有全局变量。但不要打扰。
-
typedef只为结构提供新名称。没有什么可以用它做的。 -
为什么不使用数组?
SetWidth(size_t arraySize, box array[], int desiredWith)? -
C++ 有一个称为 pointer-to-member 的功能,它允许您在没有实例的情况下形成指向结构成员的指针,例如
int box::*ptr = &box::width; box1->ptr = value; box2->ptr = value;。但是 C 没有这个特性,所以如果你不能使用 C++,那么你将不得不使用提供的替代答案之一。