define及typedef的应用

define应用

  1. #define可以为类型取别名,也可以定义常量、变量、编译开关等。
#define a 3//此时a=3恒成立
#define U16 unsigned short
  1. 也可以用来进行函数定义
#define MAX(a,b) ((a) > (b) ? (a) : (b))

当然,也存在多行函数定义,此时每一行后应加上\

#define MACRO(arg1,arg2) do { \
test1; \
test2; \
}while(0)

#undef可以取消宏定义,使用方法为:

#define a 3
#undef a

define没有作用域的限制,只要是预定义过的宏,在以后的程序中都可以使用

typedef应用

  1. 为基本数据类型定义新的类型名
typedef unsigned short U16 
  1. 为自定义数据类型(结构体、共用体和枚举类型)定义简洁的类型名称
typedef struct tagPoint
{
    double x;
    double y;
    double z;
} Point;

//此后定义相应的结构体即可:
Point oPoint1={1001000};
Point oPoint2;
  1. 为数组定义简洁的类型名称
typedef int INT_ARRAY_100[100];
INT_ARRAY_100 arr;//相当于int arr[100];
  1. 为指针定义简洁的名称
typedef char* PCHAR;
PCHAR pa;

// PFun是我们创建的一个类型别名
typedef int *(*PFun)(int,char*);
// 使用定义的新类型来声明对象,等价于int*(*a[5])(int,char*);
PFun a[5];

define及typedef的区别

define a btypedef b a是一样的用法,即通过a来调用b

#define只是简单的字符串替换,而typedef则是为一个类型起新名字。

typedef char *pStr1;
#define pStr2 char *;

pStr1 s1, s2;
pStr2 s3, s4;

在上述的变量定义中,s1、s2、s3都被定义为char *,而s4则定义成了char

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值