一个C程序员的个人开发经验,(三)变量定义

三 变量定义

写代码,变量是我们操作的基本元素。

那么有几个问题,不知道大家想过没有。变量在哪里赋值,使用有符号的还是无符号的,使用几个字节类型,变量怎么取名。

一般的教材或文章都会建议大家变量声明后要立刻初始化。那么初始化的值写成什么呢?0,或者是赋个参数?

我一般会尽量在声明的时候就一次性赋个正确的值,而不会先赋个初值,然后在用到该变量的时候再重新赋正确的值。

但很多时候,要到用到的时候才能赋正确的值,这个时候就先赋初值。

变量的类型呢,怎么选?

我的考虑因素:

尽量用整型,基本不用浮点型;整型运算速度更快,遇到小数运算时,我也尽量用整型运算来近似。

我用的最多的,是INT8, UINT8, INT32这三种类型,基本不用UINT32,或者16位类型。选择32位类型,因为在计算机中有符号32位类型是基本的处理类型(这个可能需要查一下书,我印象中有书是这样讲的)。另外,只要涉及算术运算,其结果也往往是INT32类型,所以一般选32位有符号类型。

我用8位类型多的原因是我开发了大量的图像处理程序,而像素值RGB、YUV,通常用8位无符号数表示。需要说的一点是,凡是保存在内存中的大量数据,应该尽量选择使用紧凑短小的数据类型,这样减少内存访问量,有利提高速度。比如我在处理二值图像的时候,就使用一个比特表示一个像素点,这样一个字节就表示8个点,从而有效减少了数据量。

关于数据类型的选择,建议看看《深入理解计算机系统》这本书。

变量怎么取名呢?

我经常用的名字:s32FrmWidth,stParam…

在嵌入式领域,特别在需要做大量数据处理的情况下,我还是认为匈牙利命名法是有优势的。虽然在其他领域中有其问题而不受青睐甚至被抛弃,但在有些领域内,实践证明这是一种好的方法。特别是在数据类型适配,算术运算时,通过看前缀,就能避免很多错误。

例如,s32Width >> 1,当看到前缀s32的时候,就知道这是一个有符号32位类型数据,有符号类型右移是算术右移,这样我会立刻去检查算术右移是否会带来副作用。另外在大量的赋值过程中,通过看前缀,就知道是否需要做强制类型转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值