一亩三分地

一份辛勤,一份收获,愿与大家共享,互相勉励!

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年3月31日

摘要: 指针,顾名思义,指向某个地址的标识,这个地址里面存的内容视具体上下文而定。可以是简单的整形、字符串、数组,也可以是结构体、函数指针等。 首先,我们来说一下“地址Y”和“地址Y的内容”之间的区别。这是相当微妙的,因为C语言甚至大多数编程语言中,我们用同一个符号来表示这两样东西。由编译器根据上下文环境判断它的具体含义。以一个简单的赋值为例:X=Y; 在这个上下文中,符号X的含义是X所代表的地址,被称为左值。左值在编译时可知,左值表示存储结果的地方。 符号Y的含义是Y所代表的地址的内容,被称为右值。右值直到运行时才知,如无特别说明,右值表示Y的内容。 需要注意的是,左值是需要可以修改的,... 阅读全文
posted @ 2014-03-31 22:04 斯米戈l 阅读(229) 评论(0) 推荐(0) 编辑

2014年3月30日

摘要: 主要介绍一下,为什么在跨平台的C++代码中经常可以见到extern "C"的写法。 阅读全文
posted @ 2014-03-30 22:01 斯米戈l 阅读(428) 评论(0) 推荐(0) 编辑

2014年3月29日

摘要: typedef应该用在:1.数组、结构、指针以及函数的组合类型。2.可移植类型。比如当你需要一种至少20bit的类型时,可以对它进行typedef操作 typedef的提示声明。这样,当代码移植到不同的平台时,要选择正确的类型如short, int, long时,只要在typedef中进行修改就可以了,无需对每个声明都加以修改。3.typedef也可以为后面的强制类型转换提供一个简单的名字。4.应该始终在结构的定义中使用结构标签,即使它并非必须,这种做法可以使代码更为清晰。 阅读全文
posted @ 2014-03-29 23:30 斯米戈l 阅读(306) 评论(0) 推荐(0) 编辑

2014年3月28日

摘要: 当执行算术运算时,操作数的类型如果不同,就会发生转换。数据类型一般朝着浮点精度更高,长度更长的方向转换,整型数如果转换为signed不会丢失信息,就转换为signed,否则转换为unsigned。   C语言的类型转换,除了上述的这些标准,还涉及到很多很复杂的事情,比如有符号、无符号、浮点等,每一种类型转换都要定义一种转换规则,而且不同的编译器不同的体系结构往往会带来不同的结果,很多类型转换都是C标准中未定义的,很可能就导致错误的出现。因此,在C语言中,我们要尽量的避免隐式的类型转换。 阅读全文
posted @ 2014-03-28 23:02 斯米戈l 阅读(1549) 评论(0) 推荐(0) 编辑