美文网首页
typedef用法

typedef用法

作者: a乾坤大挪移a | 来源:发表于2020-05-08 00:19 被阅读0次

介绍

typedef在c语言中主要是用来声明数据类型的别名的,比如我们可以用来代替系统默认的类型名称,数组、字符串、指针类型、字典等各种各样的类型。当我们声明了我们想要的别名后就可以使用我们声明的别名来定义变量的类型。

四种常用的方式

一:基本数据类型

    //无符号整型

   typedef unsigned int WMINT;

   WMINT i =0;

    //……

二:定义结构体

A、普通未声明的写法

struct point{

   int x;

   int y;

   int z;

};

struct pointp = {1,2,3};

B、声明后的写法

typedef struct point2 {            

   int a;

   int b;

   int c;

} P;

P s = {2,2,2};

或者

struct point2 {            

   int a;

   int b;

   int c;

};

typedef point2 P2;

P2 s2 ={2,2,2};

Oc枚举

typedef NS_ENUM(NSInteger, WMNetWorkType) {

    Unknown          = -1,

    NotReachable     =0,

    ReachableViaWWAN =1,

    ReachableViaWiFi =2,

};

WMNetWorkType network =Unknown;

三:字符串数组

  //字符串  oc

    typedef NSString WMNSString;

    WMNSString* string = [WMNSString stringWithFormat:@"”];

//数组  c

typedef int WMNewINT100 [100];

WMNewINT100 arr;

四:指针类型

typedef char*  WMChar;

WMChar charr =0;


注意事项:

一:

下面代码有什么问题

typedef char* P;

int strcmp(const P,const P);

在上面的代码中,“const P” 是否相当于 “const char*” 呢?

答案是否定的,原因很简单,typedef 是用来定义一种类型的新别名的,它不同于宏,不是简单的字符串替换。因此,“const P”中的 const 给予了整个指针本身常量性,也就是形成了常量指针“char*const(一个指向char的常量指针)”。即它实际上相当于“char*const”,而不是“const char*(指向常量 char 的指针)”。当然,要想让 const P 相当于 const char* 也很容易,如下面的代码所示:

typedef const char* P;

int strcmp(P, P);

其实,无论什么时候,只要为指针声明 typedef,那么就应该在最终的 typedef 名称中加一个 const,以使得该指针本身是常量。

二、

还需要特别注意的是,虽然 typedef 并不真正影响对象的存储特性,但在语法上它还是一个存储类的关键字,就像 auto、extern、static 和 register 等关键字一样。因此,像下面这种声明方式是不可行的:

typedef static int INT_STATIC;

不可行的原因是不能声明多个存储类关键字,由于 typedef 已经占据了存储类关键字的位置,因此,在 typedef 声明中就不能够再使用 static 或任何其他存储类关键字了。当然,编译器也会报错,如在 VC++2010 中的报错信息为“无法指定多个存储类”。

参考文章:http://c.biancheng.net/view/298.html

相关文章

  • 代码注入

    typedef注意用法

  • Typedef 用法

    转自:Typedef用法总结 不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C...

  • typedef用法

    介绍 typedef在c语言中主要是用来声明数据类型的别名的,比如我们可以用来代替系统默认的类型名称,数组、字符串...

  • typedef和typename

    一、typedef 用法:typedef 内置类型 别名 关键字typedef对内置类型、类类型等进行重命名,使用...

  • typedef

    typedef常见用法 1.常规变量类型定义 例如:typedef unsigned char uchar 描述:...

  • typedef的用法

    一、基本定义 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(...

  • typedef、Const 用法

  • typedef的用法

    一、typedef的用法 ①:定义一种类型的别名,但不是简单的宏替换。 通常来说,typedef要比#define...

  • typedef的用法总结

    typedef的用法总结转载 2015年02月28日 13:40:16 标签:c++ 373第一、四个用途 用途一...

  • typedef 用法详解(转)

    第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为...

网友评论

      本文标题:typedef用法

      本文链接:https://www.haomeiwen.com/subject/gbwtnhtx.html