Joe*_*e.Z 129 c arrays struct coding-style
我遇到了一些包含以下内容的代码:
struct ABC {
unsigned long array[MAX];
} abc;
Run Code Online (Sandbox Code Playgroud)
何时使用这样的声明是有意义的?
R..*_*R.. 82
另一个优点是它抽象了大小,因此您无需[MAX]
在声明此类对象的任何地方使用所有代码.这也可以用
typedef char ABC[MAX];
Run Code Online (Sandbox Code Playgroud)
但是你有一个更大的问题:你必须要知道这ABC
是一个数组类型(即使你在声明类型的变量时你看不到这个ABC
),否则你会被这个ABC
意味着不同的东西所蜇在函数参数列表中与变量声明/定义中.
另一个优点是,如果需要,struct允许您稍后添加更多元素,而无需重写大量代码.
Met*_*est 26
你可以像这样复制它.
struct ABC a, b;
........
a = b;
Run Code Online (Sandbox Code Playgroud)
对于数组,您需要使用memcpy函数或循环来分配每个元素.
Hos*_*her 11
您可以使用struct来创建一个新类型的数据,如字符串.你可以定义:
struct String {
char Char[MAX];
};
Run Code Online (Sandbox Code Playgroud)
或者您可以创建一个数据列表,您可以通过函数的参数使用它或将其返回到您的方法中.结构比数组更灵活,因为它可以支持像=这样的运算符,你可以在其中定义一些方法.
希望它对你有用:)