用户操作
[即时聊天] [发私信] [加为好友]
wangbrewID:brew2003
8158次访问,排名12850(-6)好友19人,关注者26
爱好广泛,音乐,体育,时刻反省自己,检讨自己
brew2003的文章
原创 27 篇
翻译 0 篇
转载 18 篇
评论 8 篇
最近评论
fftaks:wow power leveling
brew2003:呵呵,我成功的在手机上试验过了。
brew2003:这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下:
来源一:Using typedef to Curb Miscreant Code
Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 t……
ajie_lee:这种做法是错误,不知道楼主怎么搞定的?
brew2003:区域和页
在我继续谈论虚拟内存API之前,我需要说明一个比较细微的差异。虚拟内存在区域内被保留是以64KB为基础的。在区域内的页面能够一页一页地被提交(译者注:前面说到在Windows CE中每页是4096字节或1024字节)。你可以直接提交一页或者几页而不是保留区域的全部页。但是对页或几页来说,直接提交的仍是以64-KB为单位(译者注:可以直到被提交的页数量足够填满……
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      转载 typedef用法[转帖]收藏

       | 旧一篇: 风险投资看好国内高端餐饮业

      typedef用法
         typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。

       

          typedef 使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出现在所声明的变量名字中,位于 ''typedef'' 关键字右边。例如:

      typedef int size;

        此声明定义了一个 int 的同义字,名字为 size。注意 typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要 int 的上下文中使用 size.

          typedef 还可以掩饰符合类型,如指针和数组。例如,你不用象下面这样重复定义有 81 个字符元素的数组:

      char line[81];
      char text[81];


          定义一个 typedef,每当要用到相同类型和大小的数组时,可以这样:

      typedef char Line[81];
      Line text, secondline;

          typedef 有另外一个重要的用途,那就是定义机器无关的类型,例如,你可以定义一个叫 REAL 的浮点类型,在目标机器上它可以i获得最高的精度:

      typedef long double REAL;

          在不支持 long double 的机器上,该 typedef 看起来会是下面这样:

      typedef double REAL;

          并且,在连 double 都不支持的机器上,该 typedef 看起来会是这样:

      typedef float REAL;

        你不用对源代码做任何修改,便可以在每一种平台上编译这个使用 REAL 类型的应用程序。唯一要改的是 typedef 本身。在大多数情况下,甚至这个微小的变动完全都可以通过奇妙的条件编译来自动实现。不是吗? 标准库广泛地使用 typedef 来创建这样的平台无关类型:size_t,ptrdiff 和 fpos_t 就是其中的例子。此外,象 std::string 和 std::ofstream 这样的 typedef 还隐藏了长长的,难以理解的模板特化语法,例如:basic_string<char, char_traits<char>,allocator<char>> 和 basic_ofstream<char, char_traits<char>>。

      注1:注意typedef与define的区别

      typdef kkk int *
      kkk a,b

          则a,b类型相同

      define kkk int *
      kkk a,b

          则a,b类型不同
      注2:

      typedef int (*mac_listen_func)(int*,char*);
      mac_listen_func mlf1,mlf2;

      等价定义:

      int (*mlf1)(int*,char*);
      int (*mlf1)(int*,char*);

          上面的方式使用比较方便,可读性也比较好。

      发表于 @ 2008年05月30日 19:29:12|评论(loading...)|编辑

       | 旧一篇: 风险投资看好国内高端餐饮业

      评论

      #brew2003 发表于2008-05-30 19:33:26  IP: 211.101.204.*
      这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下:
      来源一:Using typedef to Curb Miscreant Code
      Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。
      typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。本文下面将竭尽全力来揭示 typedef 强大功能以及如何避免一些常见的陷阱。
      如何创建平台无关的数据类型,隐藏笨拙且难以理解的语法?

      使用 typedefs 为现有类型创建同义字。

      定义易于记忆的类型名
        typedef 使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出现在所声明的变量名字中,位于 ''typedef'' 关键字右边。例如:
      typedef int size;
        此声明定义了一个 int 的同义字,名字为 size。注意 typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要 int 的上下文中使用 size:
      void measure(size * psz);
      size array[4];
      size len = file.getlength();
      std::vector vs;
        typedef 还可以掩饰符合类型,如指针和数组。例如,你不用象下面这样重复定义有 81 个字符元素的数组:
      char line[81];
      char text[81];
      定义一个 typedef,每当要用到相同类型和大小的数组时,可以这样:
      typedef char Line[81];
      Line text, secondline;
      getline(text);
      同样,可以象下面这样隐藏指针语法:
      typedef char * pstr;
      int mystrcmp(pstr, pstr);
        这里将带我们到达第一个 typedef 陷阱。标准函数 strcmp()有两个'const char *'类型的参数。因此,它可能会误导人们象下面这样声明 mystrcmp():
      int mystrcmp(const pstr, const pstr);
        这是错误的,按照顺序,'const pstr'被解释为'char * const'(一个指向 char 的常量指针),而不是'const char *'(指向常量 char 的指针)。这个问题很容易解决:
      typedef const char * cpstr;
      int mystrcmp(cpstr, cpstr); // 现在是正确的
      记住:不管什么时候,只要为指针声明 typ
      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © brew2003