c语言结构体内有define,程序猿之---C语言细节21(#define和typedef区别、结构体细节)...

主要内容:#define和typedef区别、结构体细节

#include

#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;

}

输出:

1881fe3897584fca1b85a128e0418da7.png

原文:http://blog.csdn.net/human_evolution/article/details/41045433

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值