如何访问云南建设厅网站,网页网站建设的步骤流程图,html教程入门,西樵网站制作在C语言中#xff0c;有一个关键字叫做typedef#xff0c;有些人对此感到很疑惑。不熟悉此知识的同学都会对编程失去细心#xff0c;直接劝退#xff08;因为之前我就是这样#xff09;。、 因为好不容易认识了C语言中所有的关键字#xff08;就是类型吧#xff0c;像啥… 在C语言中有一个关键字叫做typedef有些人对此感到很疑惑。不熟悉此知识的同学都会对编程失去细心直接劝退因为之前我就是这样。、 因为好不容易认识了C语言中所有的关键字就是类型吧像啥intcharlongint arr[]char*等等等但是有时候却出现了Student aTreeTypeData node之类的语句这些语句一看就令人头皮发麻。
Student a;
TreeTypeData node; 还有那些我们复制粘贴的代码但是一运行就报99个错误就崩溃了。 明明有主函数但是确实TreeTypeData这种类型也确实没见过于是大家看见报错就感觉好难为什么算了就这样吧不学了。 好吧不得不说这种总是给出部分代码的文章确实很容易让新手退坑其实在C语言中也确实没有这种类型但是此时我们的主角就登场了他们都是通过使用typedef来重命名的。 typedef关键字其实是重命名关键字相当于我们给类型起了一个别名比如
typedef int A;
//此时我们将int类型起了别名 Aint main()
{//定义一个int变量aint a 0;//使用 int 别名定义一个变量 bA b 0;return 0;
} 就好像此时有一个人叫int我们给他起了一别名叫 A 。 所以此时你喊他int他会答应喊他A他也会答应。所以以上代码相当于定义了两个整形一个整形变量a一个整形变量b。我们可以观察a、b的大小来验证他们都是同一种类型是整形所以占4字节空间。我们改变它并打印
typedef int A;
//此时我们将int类型起了别名 Aint main()
{//定义一个int变量aint a 0;//使用 int 别名定义一个变量 bA b 0;a 1;b 3;printf(a %d, b %d\n, a, b);printf(a的大小为%d\n, sizeof(a));printf(b的大小为%d\n, sizeof(b));return 0;
} 起别名目的并不是为了提高程序运行效率而是为了编码方便提高代码的可读性令人见名思意。 之后就是typedef对结构体的使用了这也是令人头疼的地方。我们知道结构体是由成员列表的详情请看结构体和位段-CSDN博客。 其实变量列表我们一般不会使用大部分还是给结构体起别名。
typedef struct N
{int a;
}Node; 此时我们给结构体struct N 起了Node的别名。
typedef struct N
{int a;
}Node;int main()
{Node num1 { 2 };//利用别名定义一个结构体变量struct N num2 { 3 };printf(%d\n, num1.a);printf(%d\n, num2.a);return 0;
} 所以下次看到没有见过的关键字大家就知道其实在此之前就已经重命名了。