c - 动态数组堆栈结构 C

标签 c struct typedef

我有几个问题。我很难理解这段代码。它到底在做什么?

例如:

typedef struct dynArrStruct 的作用是什么?为什么它的末尾有 dynArr?我知道 typedef 的定义是“允许为已知数据类型创建别名”,但这对我来说是行话。有人可以尝试用通俗易懂的方式表达吗?谢谢!

为什么有 2 个结构变量 (a1/a2)?

如果需要,链接到完整代码:

http://www.cs.uic.edu/pub/CS211/CS211LectureNotesS13/dynArr.c

typedef struct dynArrStruct
{
    double *location;
    int length;
    int currSize;
} dynArr;

int main (int argc, char**argv)
{
    struct dynArrStruct a1;
    dynArr a2;
    int i;

    //rest of code
}

最佳答案

What does typedef struct dynArrStruct do and why does it have dynArr at the end of it?

typedef 创建一个类型的别名,以节省您的输入时间,或提高可读性。在这种特殊情况下,它为 struct dynArrStruct 创建了一个名为 dynArr 的别名。

没有 typedef,即只有这个

struct dynArrStruct
{
    double *location;
    int length;
    int currSize;
};

每次您需要声明该struct 类型的变量时,您都将被迫编写struct dynArrStruct。有了 typedef,您可以简单地编写 dynArr,编译器将为您将其解释为 struct dynArrStruct

关于c - 动态数组堆栈结构 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14948529/

相关文章:

C-从文件中读取以字符开头的行

c - libevent 在 ubuntu 服务器 14.04 上的链接问题

c++ - C++ 中 "rich type"结构的开销

c - 将目标文件与在具有不同对齐限制的体系结构上编译的结构访问链接

mongodb - 如何使用go在mongodb中插入嵌套结构的多个值

c - 如何触发 Splint 的抽象类型检查器?

c++ - 为什么 C++ 中的类型别名在其语法中使用 'using' 而不是 'typedef'?

objective-c - 未保留 Objective C 变量值

c++ - C++中typedef的作用

javascript - c xor 结果与 javascript xor 不同