C规范编辑笔记(九)

往期文章:

C规范编辑笔记(一)
C规范编辑笔记(二)
C规范编辑笔记(三)
C规范编辑笔记(四)
C规范编辑笔记(五)
C规范编辑笔记(六)
C规范编辑笔记(七)
C规范编辑笔记(八)

正文:

今天我们来分享一下C规范编辑笔记第九篇,话不多说,我们直接来看~

1、规则—不要将结构的大小计算为其字段大小的总和。计算其大小时候应该使用整个结果变量,而不是单独计算其中的字段总和,如以下实例对比可知:

Bad example:
#define SIZE_TABL 100
...
typedef struct{
	int tabl[SIZE_TABL];
	size_t size;
} my_struct;
...
size_t sizestruct= sizeof(my_struct.tabl)+sizeof(my_struct.size);
/*这总计算是不符合规则的,不能单独计算再总和*/

Good example:
#define SIZE_TABL 100
...
typedef struct {
	int tabl[SIZE_TABL];
	size_t size;
} my_struct;
...
size_t sizestruct = sizeof(my_struct); /*正确的计算大小方法*/

2、使用有符号整数时候需要考虑该值被使用时候会不会导致值溢出,最好是建议对其值运算进行判断是否会溢出

3、检测并删除任何潜在的被零除。运算中不能出现被0除和余的情况。所以规范来将我们需要对分母进行判断,如以下实例可以看出其必要性:

Bad example:
#include <stdint.h>
void func(int8_t i, int8_t j)
{
	int8_t result;
	result = i / j;     //这种情况下就容易出现被0除的风险
...
}

Good example:
#include <stdint.h>
void func(int8_t i, int8_t j)
{
	int8_t result;
	if (0 == j)      //在这个例子中对j是否为0进行判断
	{
		/* 这里可以写错误提示 */
	}
	else
	{
		result = i / j;
	}
	...
}

4、算术运算应该以有助于可读性的方式编写。方便后期他人代码维护和代码的阅读理解。当然如果你不想让别人去轻易上手你的代码,你可以加点自己的想法进去~ 当然我这里的目的是告诉你规范编写。

5、C语言有许多运算符,根据它们的结合性有不同的优先级。但是,表达式中没有括号,很难理解和校对。因此建议使用括号在多个运算符的情况下。

6、规则-禁止变量的多重赋值。 包含多重赋值的代码很难阅读,也很难维护。 将多变量赋值语句分解成和变量一样多的赋值语句。以下距离对比来看:

Bad example:
a = b = c = d = 1;   //虽然这样子也可以,但是不太建议

Good example:
...
a = 1;   
b = 1;
c = 1;
d = 1;

好了,第九篇C规范编辑笔记分享我们就到这里了,我们第十篇见~
估计第十篇要到明年2023年年初时候了
在这里插入图片描述

本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞,谢谢~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OMGMac

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值