设为首页 加入收藏

TOP

C语言中的typedef (二)
2014-11-23 22:53:45 来源: 作者: 【 】 浏览:2
Tags:言中 typedef
t FAST_COUNTER; //错误

编译通不过。问题出在你不能在声明中有多个存储类关键字。因为符号 typedef 已经占据了存储类关键字的位置,在 typedef声明中不能用register(或任何其它存储类关键字)。

促进跨平台开发

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,allocator>和 basic_ofstream>。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言指针声明探秘 下一篇关于C中函数声明与定义

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: