- 主题:所在的公司编码规范极不习惯
公司比较老吧,以前似乎都这样。有他的道理在里面。
【 在 mykeyboard (scheme) 的大作中提到: 】
: 标 题: 所在的公司编码规范极不习惯
: 发信站: 水木社区 (Sun May 24 16:56:56 2020), 站内
:
: 嵌入式系统,主要用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 于 May 24 17:00:44 2020 修改本文·[FROM: 113.104.212.*]
: ※ 来源:·水木社区 newsmth.net·[FROM: 113.104.212.*]
:
--
修改:mykeyboard FROM 113.104.212.*
FROM 115.194.6.*
生产工具也是生产力,编译器也需要定期升级才好
【 在 chiefmajia 的大作中提到: 】
: 想什么现代编译器呢,
: 很多嵌入式系统用的都是陈年编译器
: 别老觉得人家一定蠢,肯定有其中的道理。
--
FROM 125.35.125.*
表达式太长的时候,应该:
1,拆分成多行 OR
2,拆分成多条语句
【 在 wushunchao (fixer) 的大作中提到: 】
: 清一色的批判啊,我来说下这种写法啥时候会让我感觉到有点道理:
: 1。表达式太长的时候,常量放左边容易看一点。
: 2。基于1,统计总共设了哪些判据时,容易看清。
: 不过,我还是觉得不合自己的思维顺序,一般还是常量放后边。
--
FROM 27.38.249.*
我说的其实就是大半行那种,逻辑也不复杂,主要是变量名都比较长。
反正,常量统统写左边的这种一刀切,我其实也不习惯。
【 在 flw (帅五进九) 的大作中提到: 】
: 表达式太长的时候,应该:
: 1,拆分成多行 OR
: 2,拆分成多条语句
: ...................
--
修改:wushunchao FROM 183.220.27.*
FROM 183.220.27.*
【 在 mykeyboard 的大作中提到: 】
: 嵌入式系统,主要用C开发
: 规范举例如下:
: 1)判断指针变量是否为空,不能直接用
: ...................
前2条是航空领域代码规范规定的...
--
FROM 111.197.114.*
既然是规范,那我觉得定义true=0,false=-1,比要求true==xxx的问题要严重的多。
这么搞就是蓄意挖坑。
【 在 l0JQKA (-)__(-) 的大作中提到: 】
: 这几条严格来说都没问题,不知道喷的人什么心态。楼主的语言是C,古老编译器
上,不这么写很容易编译通过但运行出错。
: 尤其是第四条,C里面根本就没有boolean,谁知道true/false定义成什么,我就见
过true=0,false=-1的。
: 另外,1、2点,不管什么语言,我都会这么写,方便阅读的思维。因为!变量,很
容易让人想到变量是个bool值。人类的自然语言自然思维就是如果(变量 不等于
空)这样,而不是如果(非 变量)
--
FROM 101.81.86.*
你说的确实是现状。
但这个现状一般也说明了这个团队很弱鸡。
所以有没有道理不重要了,这点小规范只能解决弱鸡团队能犯的错误中的0.1%。
【 在 chiefmajia (马甲之王) 的大作中提到: 】
: 想什么现代编译器呢,
: 很多嵌入式系统用的都是陈年编译器
: 别老觉得人家一定蠢,肯定有其中的道理。
--
修改:lvsoft FROM 101.81.86.*
FROM 101.81.86.*
没有这个规范,但有广泛接受的习惯,这个就是事实上的规范。
你没特殊的理由,就别用偏离大众习惯的定义。
【 在 l0JQKA (-)__(-) 的大作中提到: 】
: 布尔值代表真假,没有一个规范,必须得要求真为1假为0。
--
FROM 101.81.86.*
这样的坑其实很多。UNIX类系统里面程序正常退出返回值就是0,非0就是异常退出。strcmp, memcmp 比较的内容相等时返回0. 还有LLVM里面有好些函数没出错的时候也是return false. 不过这几种情况基本上都是正确的方式只有一种,错误有很多种。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 既然是规范,那我觉得定义true=0,false=-1,比要求true==xxx的问题要严重的多。
: 这么搞就是蓄意挖坑。
: 上,不这么写很容易编译通过但运行出错。
: ...................
--
修改:ArchLinux FROM 103.254.68.*
FROM 103.254.68.*
要不换工作 要么你当cto 要不你老老实实接受...
【 在 mykeyboard (scheme) 的大作中提到: 】
: 嵌入式系统,主要用C开发
: 规范举例如下:
: 1)判断指针变量是否为空,不能直接用
: ...................
--
FROM 68.146.128.*