现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

typedef使用中的两大陷阱

2013-11-18 22:31 工业·编程 ⁄ 共 394字 ⁄ 字号 暂无评论

陷阱一:记住,typedef是定义了一种类型的新别名,不同于宏,它不是简单的字符串替换。

比如:

先定义:

typedef char* PSTR;

然后:

int mystrcmp(const PSTR, const PSTR);

const PSTR实际上相当于const char*吗?不是的,它实际上相当于char* const。

原因在于const给予了整个指针本身以常量性,也就是形成了常量指针char* const。

简单来说,记住当const和typedef一起出现时,typedef不会是简单的字符串替换就行。

陷阱二:typedef在语法上是一个存储类的关键字(如auto、extern、mutable、static、register等一样),虽然它并不真正影响对象的存储特性,如:

typedef static int INT2; //不可行

编译将失败,会提示“指定了一个以上的存储类”。

关于typedef的用法总结

给我留言

留言无头像?