我对C仍然很新,但是慢慢学习,我知道基本结构如何工作,但我正在学习这些新结构。我究竟如何使用它们以及它们如何以记忆方式工作?
非常感谢
struct in struct ??
let mySearchBar = UISearchBar()
mySearchBar.frame = CGRect(x: 0, y: view.frame.size.height - 50, width: view.frame.size.width, height: 50)
mySearchBar.showsCancelButton = true
mySearchBar.placeholder = "sample"
self.view.addSubview(mySearchBar)
struct指向自己?
struct Multi {
int which;
union
{
float f;
double d;
int i;
} data;
};
这件事
typedef struct Other {
double x;
int* y[2];
struct Other* z;
} Other;
更多
typedef int const * (* const CallMe)(const int *);
非常感谢。
如果可以给出一个例子来说明如何声明和初始化该类型的单个变量,那就太好了。我喜欢用backkwards来尝试自己。
答案 0 :(得分:1)
第一种情况(使用union
)
这不是结构中的结构。 data
实际上是一个联盟(如果您有兴趣,请参阅工会here)。如果你只是学习结构,不要介意工会 - 他们并没有经常使用结构,而你可能会在两者之间混淆。
这个设置在C中很经典。你有一个字段可以告诉你应该使用哪个字段。
第二种情况
不,这不是指向自身的结构;这意味着struct Other
包含指向struct Other
的指针。所以,你可以:
struct Other s1;
struct Other s2;
s2.z = &s1; // Now s2.z equals s1's address.
第三种情况
这与struct
无关。它是函数指针的typedef
,它指向int
,并返回指向int
的指针。
第四种情况
再次,这不是一个结构,而是一个联盟。此联合包含(对于theta
)指向函数的指针,该函数不带参数并且不返回任何内容,或者(对于iota
)指向函数的指针,该函数不接受任何参数并返回void指针。 / p>