- 主题:上午面试了一个小孩,问了一个问题是不是太过分了 (转载)
【 以下文字转载自 NewExpress 讨论区 】
发信人: feiy (null), 信区: NewExpress
标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
发信站: 水木社区 (Thu Jul 8 18:25:14 2021), 站内
面试的是智能硬件固件相关的。小孩背景和综合素质不错。
然后我随口问了一句:
下面一段代码
char a = -5;
if(a<0) print("1");
else print("2");
会打印什么? 结果小孩满脸露出疑惑然后略带有点生气的表情看着我,迟疑了半分钟后
说,会打印出1. 我问一定时打印出1吗? 然后他好像更多了一些觉得被羞辱的生气的表
情,说,难道不是打印出1?
我的本意是,随便问问想看看这个小孩是否知道,char 不一定总是signed的,与编译选
项有关。因为很多产品的bug,都是因为类似此处的不注意所致。而且,现在越来越多的
编译器,缺省的char反而都是unsigned的16位,需要你主动设置对应的编译选项,才会是
signed的8位。
结果小孩的表情,反而让我也觉得,草率装逼了问了不该问的问题。因为我跟他说了,char不一定总是signed的,也不一定总是8位的,与编译选项有关,但小孩走的时候还都是气鼓鼓的,搞得我自己反而觉得难堪该被批
大家觉得我问这个问题,是不是太那个了点?
--
修改:feiy FROM 111.199.218.*
FROM 111.199.218.*
这种的 就是典型的自己学歪了 还要让别人也觉得歪
--
FROM 114.84.165.*
如果应聘者是有经验的人的话,问这种没啥吧
如果是刚毕业的学生,可能就是照着书本上学了一下C语言。问这种可能就超出他的知识范围了。
--
修改:z16166 FROM 123.118.187.*
FROM 123.118.187.*
这种代码开-Wall -Wextra是可以发现问题的。
https://gcc.godbolt.org/z/d6fM4G9zh
【 在 anotherstone (初级K线分析员) 的大作中提到: 】
: 【 以下文字转载自 NewExpress 讨论区 】
: 发信人: feiy (null), 信区: NewExpress
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: ...................
--
FROM 103.90.178.*
你写的是C? C里面有print 这个函数?
【 在 anotherstone (初级K线分析员) 的大作中提到: 】
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: 发信站: 水木社区 (Fri Jul 9 17:01:31 2021), 站内
:
: 【 以下文字转载自 NewExpress 讨论区 】
: 发信人: feiy (null), 信区: NewExpress
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: 发信站: 水木社区 (Thu Jul 8 18:25:14 2021), 站内
:
: 面试的是智能硬件固件相关的。小孩背景和综合素质不错。
:
: 然后我随口问了一句:
:
: 下面一段代码
:
: char a = -5;
:
: if(a<0) print("1");
:
: else print("2");
:
: 会打印什么? 结果小孩满脸露出疑惑然后略带有点生气的表情看着我,迟疑了半分钟后
: 说,会打印出1. 我问一定时打印出1吗? 然后他好像更多了一些觉得被羞辱的生气的表
: 情,说,难道不是打印出1?
:
: 我的本意是,随便问问想看看这个小孩是否知道,char 不一定总是signed的,与编译选
: 项有关。因为很多产品的bug,都是因为类似此处的不注意所致。而且,现在越来越多的
: 编译器,缺省的char反而都是unsigned的16位,需要你主动设置对应的编译选项,才会是
: signed的8位。
:
: 结果小孩的表情,反而让我也觉得,草率装逼了问了不该问的问题。因为我跟他说了,char不一定总是signed的,也不一定总是8位的,与编译选项有关,但小孩走的时候还都是气鼓鼓的,搞得我自己反而觉得难堪该被批
:
: 大家觉得我问这个问题,是不是太那个了点?
:
:
: --
:
: ※ 修改:·feiy 于 Jul 8 18:35:12 2021 修改本文·[FROM: 111.199.218.*]
: ※ 来源:·水木社区 mysmth.net·[FROM: 111.199.218.*]
:
--
修改:feiy FROM 111.199.218.*
FROM 124.207.188.194
说到数的表示问题,C++ 20和C2x都在标准里面加了一个要求:有符号数必须用二进制补码表示,言外之意是之前的C/C++标准的有符号数实现有可能不是二进制补码表示。
【 在 ArchLinux (a lightweight and flexible distribution) 的大作中提到: 】
: 这种代码开-Wall -Wextra是可以发现问题的。
:
https://gcc.godbolt.org/z/d6fM4G9zh--
FROM 103.90.178.*
还是用C#吧。这种代码不会编译通过的
【 在 anotherstone 的大作中提到: 】
: 发信人: feiy (null), 信区: NewExpress
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: 发信站: 水木社区 (Thu Jul 8 18:25:14 2021), 站内
: ...................
--
FROM 183.95.135.*
如果学C语言就是学这些东西,那真的是浪费生命。
【 在 anotherstone 的大作中提到: 】
: 发信人: feiy (null), 信区: NewExpress
: 标 题: 上午面试了一个小孩,问了一个问题是不是太过分了
: 发信站: 水木社区 (Thu Jul 8 18:25:14 2021), 站内
: ...................
--
FROM 183.95.135.*
上周在一个微信群里就看到一个朋友就因为同样问题浪费了一整天。
这种就是典型的自己不讲究,还不许别人讲究。。
【 在 Sinopeus (Sinopeus) 的大作中提到: 】
: 这种的 就是典型的自己学歪了 还要让别人也觉得歪
--
FROM 114.87.30.*
没学过编译原理的人容易把人肉编译器当成不传之秘
【 在 a0123456789q (a0123456789q) 的大作中提到: 】
: 如果学C语言就是学这些东西,那真的是浪费生命。
--
FROM 27.91.71.*