- 主题:上午面试了一个小孩,问了一个问题是不是太过分了 (转载)
定义一个char型变量然后和0比 这开头就偏了
【 在 anotherstone 的大作中提到: 】
: 【 以下文字转载自 NewExpress 讨论区 】
: 发信人: feiy (null), 信区: NewExpress
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: 发信站: 水木社区 (Thu Jul 8 18:25:14 2021), 站内
:
: 面
: ..................
发自「今日水木 on SEA-AL10」
--
FROM 61.144.173.*
这是语言的bug,不是程序员的bug
【 在 anotherstone 的大作中提到: 】
: 发信人: feiy (null), 信区: NewExpress
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: 发信站: 水木社区 (Thu Jul 8 18:25:14 2021), 站内
: ...................
--
FROM 114.249.133.*
整个趋势的走向是上层工具会越来越多的摆平所有底层问题,需要精通底层的人会越来越少。
但,世界是复杂的,发展是曲折的。
做个比喻,我们现在用一个工具,是不会从挖矿这种细节开始的。
但也不排除极少数极端场合,你要知道这玩意是用几几年从哪里哪个矿挖出来的材料制造的。
现在IT行业也在经历类似的发展过程。我的观点是现在对底层有深刻理解当然是有价值的,
但新人就不一定鼓励还这么做了,除非有特殊的天赋。
【 在 mystar1984 的大作中提到: 】
: 首先认同你说的这些才能显出真章来。
: 探讨下,以后这些问题会不会都被上层工具直接给摆平了,现在费劲的理解这些还真正意义有多大?
:
--
FROM 180.111.50.*
现在的小孩这种现象很普遍的。
比这个离谱的多了。
【 在 easebless 的大作中提到: 】
: 面试遇到不会的题 就气鼓鼓 这种来了你可难带了....
--
FROM 180.111.50.*
这种难题让高级程序员解决就行了,好的平台可以避免初中级程序员踩坑,代码审查也比较简单
【 在 moudy 的大作中提到: 】
: 我刚刚弄完了个项目,把买来的软件栈集成进公司的系统里,俩家都定了自己的xx-int8类型,俩软件栈api要交互,要折腾类型兼容。
:
--
FROM 118.250.155.*
老码农根本都没看到是char,只有被直接毙了…
【 在 anotherstone 的大作中提到: 】
: 发信人: feiy (null), 信区: NewExpress
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: 发信站: 水木社区 (Thu Jul 8 18:25:14 2021), 站内
: ...................
--
FROM 221.217.8.*
那你就跟他解释一下啊,让他明白问这题的含义
【 在 anotherstone 的大作中提到: 】
: 【 以下文字转载自 NewExpress 讨论区 】
: 发信人: feiy (null), 信区: NewExpress
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: ....................
- 来自「最水木 for iPhone Xr」
--
FROM 1.196.165.*
说了半天也没有干货,你就说哪个编译器是你说的那么干的就行。
【 在 feiy 的大作中提到: 】
: 不是奇葩,而是你做嵌入式固件的经验很一般没有遇到过或者不知道这个可以说常识、而且的确是和许多bug相关的一个常见话题而已。
: 同时,如果你真的是搞技术做嵌入式的,那你发这个回帖(认为是奇葩)风格,的确是令人感到比较遗憾的。
: 1、 你随便百度一下 char is unsigned,也可以看到很多人都在说 char 是signed还是
: ...................
--
FROM 117.136.1.*
这个问题扯起来就复杂了。比如我用别人的代码都会先过下,把隐藏问题处理下,把雷排一排。
但这样会有额外投入,还会有额外风险,比如引入新的问题等等。
大部分人的做法是管它这么多呢,按照原来的代码要求的系统,环境,版本,什么都不改精确的搭一个的跑。
这也是docker普及之后大家越来越喜欢的玩法。然后多代码之间的联动协作又开始成为了新的麻烦。
这是一个理念的问题。对于你的这个场景,我倾向与先彻底消除char这种用法。
如果有多个库都自己定义的u8 s8,需要处理多个库之间的数据传输和格式转换,那就把所有的库都处理成统一的格式。
总之,我的基本思路是基础牢靠很重要,与其靠个人实力在危楼里面搭鹏,不如费点力气把地基打好,按规矩建设。
这笔额外的投资是必须要支付的代价,尤其是如果这个东西是构成你公司核心竞争力的产品的话更应该如此。
至于什么工程是意外使用之类的,这种事情有一万种解决办法。比如编译器给warning的代码不让push到repo就结束了。
【 在 feiy 的大作中提到: 】
: 所以,规范公司和有经验的工程师都会拒绝用单独一个char(plain char),都会定义一套u8 s8 u16 s16之类的使用。
: 但现实里,却是有不少工程师有时会无意该地夹杂用char来表示他所本意的signed 8-bit,而且认为没错无问题。有时候,编译器会给warning,有时候未必会给warning(前面有人说char a=-5;很易被warning,但若-5是隐性计算出来的呢,编译器本身也并不总是很聪明),有很多人面对一大堆warning也习惯于忽略无视。
: 不是说一定会出问题bug,做多开发经验有了,一般基本都会遇到。
: ...................
--
修改:lvsoft FROM 180.111.50.*
FROM 180.111.50.*
你写这么垃圾的代码 编译器不报warning么
【 在 anotherstone (初级K线分析员) 的大作中提到: 】
: 【 以下文字转载自 NewExpress 讨论区 】
: 发信人: feiy (null), 信区: NewExpress
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: 发信站: 水木社区 (Thu Jul 8 18:25:14 2021), 站内
--
FROM 220.243.131.*