`

看一下typedef和#define的一个区别

 
阅读更多

         首先看一下下面的两种定义,想想会有什么不同:

 

第一种定义:宏定义,以FU表示int*(在编译时就替换了)

#define FU int*

 第二种定义:

typedef int* FU;

 好了,应用以上的FU分别定义变量有什么区别呢?

	FU i,j;

   

                          如果使用第一种定义,则 i 是一个int型指针。  j 仅仅是一个int型变量。

                          如果使用第二种定义,则  i  和 j都是一个int型指针。

    比如如下代码:

        typedef int* FU;
        int array[3]={1,2,3};
	FU i,j;
	i=array;     //i[1]的值为2,i是一个int型的指针
	j=array;     //j[1]的值为2,j是一个int型的指针

 

        #define FU int*
        int array[3]={1,2,3};
	FU i,j;
	i=array;     //i[1]的值为2,i是一个int型的指针
	j=array;     //这样是非法的,因为j是一个int型变量

 

分享到:
评论

相关推荐

    #define和typedef的使用

    介绍#define和typedef的区别于使用

    typedef和#define的用法与区别

    文章主要介绍了typedef和#define的用法与区别

    #define VS typedef

    #define是预处理指令 typedef是在编译时处理的 typedef与#define的区别

    C/C++中的typedef和#define详解

     在C/C++中,我们平时写程序可能经常会用到typedef关键字和#define宏定义命令,在某些情况下使用它们会达到相同的效果,但是它们是有实质性的区别,一个是C/C++的关键字,一个是C/C++的宏定义命令,typedef用来为一...

    C语言 #define用法集锦[修正版]

    是a+b 然后去和c,d 相乘,但是因为使用了define(它只是一个简单的替换),所以式子实际上变成了 c*a + b*d 另外举一个例子: #define pin (int*); pin a,b; 本意是a 和b 都是int 型指针,但是实际上变成int* a,b; ...

    C语言自学笔记—typedef与#define的区别

    定义的类型不同,typedef定义的是类型,而#define不只是可以为...typedef虽执行范围有限,但在范围内比#define要更加灵活,例如在指针类型的定义上,typedef可以定义一个指针类型,而#define只能定义一个指针。 type

    typedef和#define的用法以及区别

    以下是对C/C++语言中,typedef和#define的用法以及区别进行了详细的介绍,需要的朋友可以过来参考下

    typedef与define的区别

    typedef与define的用法,说明typedef和define的区别及各自的特殊用法

    define与typedef 区别

    typedef int * pint ; #define PINT int * 那么: const pint p ;//p不可更改,但p指向的内容可更改 const PINT p ;//p可更改,但是p指向的内容不可更改。 (const pint p === ( const pint )p) (const PINT p ...

    typedef和define的区别

    简单介绍了这两者的区别,可以供初学者参考,以便更深入理解

    哈夫曼树创建(.cpp )

    #define N 50 /*叶子结点数*/ #define M 2*N-1 /*树中结点总数*/ typedef struct { char data[5]; /*结点值*/ int weight; /*权重*/ int parent; /*双亲结点*/ int lchild; /*左孩子结点*/ int rchild; /*右...

    C语言中#define与typedef的互换细节详解

    本篇文章是对C语言中#define与typedef的互换细节进行了详细的分析介绍,需要的朋友参考下

    #define,const,typedef三者联系与区别

    文章简单介绍了#define,const,typedef三者联系与区别

    #define宏定义——只替换,不计算! #define VS typedef

    #define的用法与#define和typedef的区别详解。 简单的define定义#define MAXTIME 1000,define的“函数定义”,宏的单行定义,define的多行定义,如何定义宏、取消宏,条件编译等等。

    VC有向图最短路径算法程序

    typedef struct { vextype vexs[MAXLEN]; //vextype型的vexs[MAXLEN]数组存放顶点 edgetype arcs[MAXLEN][MAXLEN]; //edgetype型的arcs[MAXLEN][MAXLEN]二维数组存放边的权值 int vexnum,arcnum; }MGRAPH; ...

    typedef的用法及与define的区别

    typedef四个用途和两个陷阱、用法及与define的区别

Global site tag (gtag.js) - Google Analytics