- 主题:所在的公司编码规范极不习惯
嵌入式系统,主要用C开发
规范举例如下:
1)判断指针变量是否为空,不能直接用
if(ptr) 或者 if(!ptr)
要求用==判断指针变量跟NULL是否相等
2)判断整型变量是否等于0或者不等于0,(包括其余的变量等于常量的判断),不能直接用
if(i)或者 if(!i)
要求用==判断变量跟常量0是否相等
3)判断是否要相等,要求把常量放在前面,
所以1)中的判断是否指针变量为空,
要求用 if(NULL == ptr)
2)中的判断要求用:
if(0 == i)
或者 if(3 == j)
4)最夸张的是"布尔型"变量也要求用==与布尔常量值判断是否相等
if( TRUE == isValid)
--
修改:mykeyboard FROM 113.104.212.*
FROM 113.104.212.*
if 后面不需要空格吗
(后面允许空格吗?
布尔型的这种判断是错误的
这根本就不是编码规范的问题了
这就是错的
【 在 mykeyboard (scheme) 的大作中提到: 】
: 嵌入式系统,主要用C开发
: 规范举例如下:
: 1)判断指针变量是否为空,不能直接用
: ...................
--
FROM 123.123.130.*
【 在 mykeyboard (scheme) 的大作中提到: 】
: 嵌入式系统,主要用C开发
: 规范举例如下:
: 1)判断指针变量是否为空,不能直接用
: ...................
常量写前面是有道理的,如果把==写成了=,如if(3 = i)编译会通不过的。但我的bug更多是在别的地方。别的我不知道有什么道理。
https://stackoverflow.com/questions/3825668/checking-for-null-pointer-in-c-c
https://stackoverflow.com/questions/1284050/c-comparison-to-null
不知道别的行业有没有较真的现象,也许码农:1. 我挣钱多我有理;2. 错1个bit试试?所以好争?老笑话:女神:你能让这个论坛的人都吵起来,我今晚就跟你走。
程序猿:PHP语言是最好的语言!
论坛炸锅了,各种吵架。
女神:服了你了,我们走吧,你想干啥都行。
程序猿:今天不行,我一定要说服他们,PHP语言是最好的语言。
哦,想到了,宗教业,他们不仅动刀子,而且用火烧哩。
--
修改:billybear04 FROM 106.121.179.*
FROM 106.121.179.*
纯粹是抄来的规范
这些都是小问题
稍微注意一下就没问题
不注意再怎么都是形式主义
【 在 mykeyboard 的大作中提到: 】
:
: 嵌入式系统,主要用C开发
: 规范举例如下:
: 1)判断指针变量是否为空,不能直接用
: if(ptr) 或者 if(!ptr)
--
FROM 221.218.141.*
哈哈,陈年规范
【 在 mykeyboard () 的大作中提到: 】
: 嵌入式系统,主要用C开发
: 规范举例如下:
: 1)判断指针变量是否为空,不能直接用
: if(ptr) 或者 if(!ptr)
--
FROM 138.19.103.*
是抄来的规范,
抄规范的人现在是领导
【 在 format (大道至简) 的大作中提到: 】
: 纯粹是抄来的规范
: 这些都是小问题
: 稍微注意一下就没问题
: ...................
--
FROM 113.104.212.*
if (3 == i)这个好理解 (其实现在的编译器对if语句中的赋值都有警告了吧,这条也大概率过时了,而且等号左侧、右侧都是变量时,该写错的还是会写错,如果编译器不警告,错的也能编译过去)
其他那些规范的理由是啥?
无理由,直接强制推行?
--
修改:z16166 FROM 114.241.230.*
FROM 114.241.230.*
1、2一直是我的编码习惯
对团队合作而言,因为有前面的12,那么4也是合乎上面逻辑的延续
【 在 mykeyboard 的大作中提到: 】
: 嵌入式系统,主要用C开发
: 规范举例如下:
: 1)判断指针变量是否为空,不能直接用
: ...................
--
修改:sosei FROM 60.1.11.*
FROM 60.1.11.*
1和2的情况……其实也还好,如果你用类型检查更严格的语言,
是会遇到在语法层面就不能把非布尔类型的表达式直接用做判断
条件的,一定要显式比较是否等于零值。
但是4……如果是严格的布尔类型,那就是多此一举了。
【 在 mykeyboard (scheme) 的大作中提到: 】
: 嵌入式系统,主要用C开发
: 规范举例如下:
: 1)判断指针变量是否为空,不能直接用
: ...................
--
修改:adoal FROM 183.156.252.*
FROM 183.156.252.*