- 主题:上午面试了一个小孩,问了一个问题是不是太过分了 (转载)
C是对硬件的0开销抽象。硬件不统一,那就只能抽象到这个程度。后来硬件统一了一些,那后面的低层语言就可以抽象得好一些。
其实C标准已经比原始的C语言抽象了。C标准要求char至少8位,楼上说的7位char的平台,C标准的编译器不好高效地实现。
【 在 chylli 的大作中提到: 】
: 为啥C标准会弄这么多未定义的玩意?这不是找麻烦么?
--
FROM 114.86.93.*
似乎还有1byte=32bit的。
char是寻址的单元,也就是1byte。但应该还是可以有值域比char小的整形,比如16位char的平台上还是可以有int8_t,只不过sizeof(int8_t)==sizeof(char)==1。
比如bool就是个值域比char小但sizeof不比char小的类型,虽然它不是整形吧。
【 在 eGust 的大作中提到: 】
: char 还能是16位的?我印象中标准里 char 用来表示宽度最小整数的类型,莫非有嵌入式会搞成 1-byte = 16-bit?
--
FROM 114.86.93.*
size_t不是单位。
单位的意思是,如果char是32位,那么memcpy(_,_,1)拷贝了多少位数据?
【 在 JulyClyde 的大作中提到: 】
: 这几个不都是以size_t为单位吗??
--
FROM 114.86.93.*