checkpatch海思SDK代码遇见的常见错误《一》

本文分析了海思SDK中的一些代码规范问题,包括extern的使用、指针声明、注释格式、空格与缩进、大括号位置等。这些问题涉及代码的可读性和一致性,对于提升代码质量至关重要。通过这些例子,我们可以看到即便是专业SDK,也有改进的空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01)WARNING:AVOID_EXTERNS: externs should be avoided in .c files
#3: FILE: sample/region/sample_region.c:3:
+extern "C" {

-#ifdef __cplusplus
-#if __cplusplus
-extern "C" {
-#endif
-#endif /* End of #ifdef __cplusplus */
-

02)ERROR:POINTER_LOCATION: "foo* bar" should be "foo *bar"

指针的星要紧跟变量名称,而不是变量类型。

03)WARNING:QUOTED_WHITESPACE_BEFORE_NEWLINE: unnecessary whitespace before a quoted newline

换行符之前没必要加空格。

04)WARNING:RETURN_VOID: void function return statements are not generally useful

void型函数,无需返回值。

 这可是海思SDK里面的代码,看来海思也是有进步不小空间的。

05)WARNING:BLOCK_COMMENT_STYLE: Block comments use * on subsequent lines

注释块,其他行要以星*开头。

06)ERROR:OPEN_BRACE: that open brace { should be on the previous line

这个大括号要移到上面一行去跟if到同一行。

07)WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (8, 12)

 if里面的代码每行前面两个TAB键。

08)ERROR:SPACING: spaces required around that '=' (ctx:VxV)

 等号、小于号前后要有空格。

09)ERROR:SPACING: space required before the open parenthesis '('

 

10)WARNING:LINE_SPACING: Missing a blank line after declarations

声明和代码实体要有空格分开。

11)WARNING:BRACES: braces {} are not necessary for single statement blocks

只有一行语句的,没必要大括号包围:)

12)ERROR:RETURN_PARENTHESES:return is not a function, parentheses are not required

13)ERROR:SWITCH_CASE_INDENT_LEVEL: switch and case should be at the same indent

 就是说switch和case是齐头并进的,一样的缩进。

14) ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)

就是这个星前后都要间隔空格。

15)WARNING:BRACES: braces {} are not necessary for any arm of this statement

单句的,就不需要用大括号包起来。

 16)WARNING:SPACING: space prohibited before semicolon

 

 就是结尾的分号前不能有空格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值