首页 > 代码库 > 程序猿之---C语言细节21(#define和typedef区别、结构体细节)
程序猿之---C语言细节21(#define和typedef区别、结构体细节)
主要内容:#define和typedef区别、结构体细节
#include <stdio.h> #define INT_D int* #define CHAR_D char int main() { /*#define 与 typedef区别*/ typedef int* INT_T; typedef char CHAR_T; INT_T a,b; // a、b都为int型指针 INT_D c,d; // c为int型指针、d为int整型 unsigned CHAR_D e; // #define的类型定义可以类型扩展 // unsigned CHAR_T f; // 这句是错误的,typedef重定义类型不能加类型扩展 /* 结构体细节 */ //测试1 struct foo{ int foo; } foo; // 最后面的foo是结构体foo声明的一个变量 // foo test; // 直接这么定义一个结构体是错误的 foo.foo= 1; // 结构体名可以和内部变量名一样 printf("foo = %d\n",foo.foo); //测试2 typedef struct fun{ int fun; }fun; fun fn; // 这时可以定义 /* 小结: 1、不要为了方便起见对结构体使用typedef,这样唯一好处就是你不用写struct,但是这个关键字 可以向你提示一些信息,不应该省掉 2、typedef用在数组、结构、指针以及函数的组合类型;可移植类型,当你需要一种至少20比特的类型时,可以进行 typedef操作,这样代码移植到不通平台,要选择正确类型如short、int、long时,只需要对typedef进行修改,而不用对 每个类型修改 */ return 0; }
输出:
程序猿之---C语言细节21(#define和typedef区别、结构体细节)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。