- 主题:Re: 怎么很多技术人员都很顽固于自己有限的认识?
你说的那个考试题目那么直白,也不是把给char赋一个负值放在啥弯弯绕绕的里面。
你考那个题不如直接问考生char有没有符号
【 在 feiy (null) 的大作中提到: 】
这不,本来的目的是考察相关的经验嘛。
在基于电脑等上层的开发上,目前常见的还都是按照缺省的signed进行解释或编译的。
所以,如果这个题目是纯粹的考应用层的,就考官可能的确有点那个了。
但是在嵌入式上,非常之常见和普通,产品做多了,认真debug过的,可能都会遇到过这
个问题。所以,在嵌入式底层上,就是考经验啊。我也是随口问一下看起经验而已。
(至于需要标准化为u8 s8,以及是否为学生不能期望太高,那就是另外一个话题了)
【 在 ilovecpp (cpp) 的大作中提到: 】
: 这个确实不限于嵌入式,一般讲C traps and pitfalls都会提到。
--
修改:feiy FROM 111.199.218.*
FROM 123.118.105.112
嵌入式不是都用类似于 uint8 之类的明确类型的吗?
char是个什么东西?
【 在 feiy 的大作中提到: 】
: 比如那个char是否一定signed的,已经特别说了是“嵌入式”背景(参见文138273,
: 被mark着)是常识经验,而后还特地截图演示了,在一个世界性主流的IDE工具下、
: 常见的嵌入式单片机平台、很常见的一段C代码的编译执行结果,没有warning编译
: 通过,执行的结果就是当成的unsigned的(参见文138437,里面有图文说明,也被
: mark着)。
:
: 但是依然一堆人还在反复根据自己有限的认识,认为char可能是unsigned是错误的,或
: 者纯属靠回字的四种写法;纯属扯淡,或者不认为很常见,是垃圾烂的编译器或者特定
: 的奇淫技巧式的扯淡?然后跟着一堆嘲笑和自以为是。
:
: 在嵌入式语境下,char可能被解释成unsigned,也不一定是8位的,这个知识点和经验以及事实,就那么难以让某些人所接受吗? 尤其是前者,编译器可能会缺省把单独的一个char
: 被解释成unsigned,这个嵌入式上的常见经验常识,很难被某些人所接受吗?
:
: (当然,如果你的关注点是,需要规范化杜绝使用char而是u8 s8之类的,那参与探讨还
: 算是靠谱和对路)。
:
: 这个话题本身属于嵌入式版面的,在programming版面被很多人不知道,这一点可以理解。
: 本身也不值一提。所以,搞不清楚,那个转载的人为何转来这个版面,是钓鱼目的吗?
:
: 关键是,现在的技术人员的严谨、谨慎、虚心、客观、探究的好品质呢?某些人是否已经
: 舍弃了作为技术人员起码的先百度自学探究的习惯?
: --
:
发自「今日水木 on 鸿蒙」
--
FROM 73.93.166.*
为什么勿怪啊
【 在 wjhtingerx (ca6140) 的大作中提到: 】
: 伸手党勿怪
--
FROM 43.243.12.*
我是认为知道这个知识点还是不了解这个不影响任何事情,因为这是一句话的事情,不需要额外的学习成本,如果它很重要,就作为团队知识共享就行了, 新人入职一看便知。不需要单独在面试中去问。
【 在 feiy 的大作中提到: 】
: 比如那个char是否一定signed的,已经特别说了是“嵌入式”背景(参见文138273,
: 被mark着)是常识经验,而后还特地截图演示了,在一个世界性主流的IDE工具下、
: 常见的嵌入式单片机平台、很常见的一段C代码的编译执行结果,没有warning编译
: ...................
--来自微水木3.5.11
--
FROM 223.167.169.*
16bit的char在DSP中常遇到,你20多年估计一直在arm上开发
【 在 wjhtingerx 的大作中提到: 】
: 你直接回答好了啊,你碰到的,理论上你说的是对的。但是我做了20多年嵌入式,真没见过char不是8位的机器(我想一些4位单片机可能是4位的,但是16位还真是不敢想)。
: 但是嘛,凡事都得讲实际,得有边际。不然地球明天爆炸也是理论上存在可能的,所以你所有的行动都要把这个因素纳入考虑吗?
:
: ...................
--
FROM 49.7.60.*
是这样,但是 -f(un)signed-char 这种选项一般不应该使用,因为会导致 ABI 不兼容。
【 在 adoal (阿豆) 的大作中提到: 】
: 其实即使X86上默认signed的编译器也可以加个选项让plain char是unsigned
--
FROM 103.90.178.*
为什么作为一个严谨的技术人员必须要先百度?我查技术文档从来不用百度。
【 在 feiy 的大作中提到: 】
:
: 比如那个char是否一定signed的,已经特别说了是“嵌入式”背景(参见文138273,
: 被mark着)是常识经验,而后还特地截图演示了,在一个世界性主流的IDE工具下、
: 常见的嵌入式单片机平台、很常见的一段C代码的编译执行结果,没有warning编译
: 通过,执行的结果就是当成的unsigned的(参见文138437,里面有图文说明,也被
--
FROM 49.183.39.*
是哦,TI的DSP有些就是16 bit char/byte
https://software-dl.ti.com/ccs/esd/documents/c2000_byte-accesses-with-the-c28x-cpu.html
说到底还是C/CPP的规范给的自由度太大了,允许"implementation defined"。
16 bit char算是小众场合吧,搞那个特定场合的人需要了解。而且一般是一入职开始弄代码时就会了解。
https://stackoverflow.com/questions/2098149/what-platforms-have-something-other-than-8-bit-char/2098444
【 在 hghghghg 的大作中提到: 】
: 16bit的char在DSP中常遇到,你20多年估计一直在arm上开发
--
修改:z16166 FROM 123.118.187.*
FROM 123.118.187.*