可以向文件写入少于1个字节

cyr*_*joe 13 c bits file low-level

据我所知,C中最小的单位是a byte.这种约束来自哪里?中央处理器?

例如,如何将一个nibble或一个单独写入bit文件?

wol*_*ajr 19

不,你不能......文件按字节组织,它是你可以保存的最小数据.

实际上,通常,1个字节将占用超过1个字节的空间.根据操作系统,系统文件类型等,您保存为文件的所有内容都将使用至少一个块.块的大小根据您使用的文件系统而有所不同.然后,这个1位将被写为1字节,并且可以占用多达4kB的磁盘.

维基百科中,您可以阅读有关字节是许多计算机中最小数据单元的内容.


Jon*_*pan 7

实际上,它是char- byte不是标准的C类型.

约束来自C标准并且是重言式的:char是C中最小的完整类型,因为它被定义为这样,并且所有其他类型的大小被定义为大小的倍数char(其大小始终是1.)

现在,a中的位数char可能因平台而异.位数最终往往是硬件定义的,尽管现在大多数系统都使用8位chars.char应该代表最小的可寻址内存单元(同样,根据定义.)

  • 我们正在进入语义和可能的迂腐,但是字节的历史定义是CPU架构可以解决的最小完整类型,使其与C char同义并且具有类似的位变量.我不确定这个定义是否已经存在; 我认为,RISC机器只能访问单词对齐的值而不是对紧凑字符串的需求以及在机器之间移动数据的能力. (2认同)
  • 是的,它们在历史上是同义词——只是 C 类型是 `char`,而 OP 正在询问 C。 (2认同)