百科问答小站 logo
百科问答小站 font logo



C 语言有哪些冷知识? 第1页

  

user avatar   haozhi-yang-41 网友的相关建议: 
      

1byte 不一定等于 8bit。

C(也包括C++)里面,把 1byte 等于多少 bit,定义为实现相关(implementation-defined)。

不过,也规定了一个 byte 必须能够以正数方式放下整个 ascii 字符表。所以,理论上不会出现1byte=7bit,但说不准哪天哪个脑子进水的家伙可能会弄一个1byte=9bit的编译器出来……

要想知道当前系统1byte=?bit,可以通过CHAR_BIT宏来获得。


再来说一些库函数相关的冷知识:

如果要把一个指针用一个整型放下来,最标准的整型类型应该是intptr_t/uintptr_t。

sizet类型在 printf 格式中,标准格式符是 z。如果是上面提到的intptr_t/uintptr_t呢,你就只能用 PRIdPTR/PRIuPTR 这种反人类的方式了——怎么反人类?format 串用%d写成这样的话:"xxx=%d yyy",这时你要写成:"xxx=%" PRIuPTR "yyy" 这样的形式。

scanf系列函数中,format 串可以实现简易的类正则式样的提取/匹配功能。如果一般如a=b之类的配置解析等需求,可以不折腾正则库。

有 atoi、atol、atoll、atof,也有strol、strtoll、strtof、strtod……对应一下,就会发现,少了str系列少了strtoi,a 系列少了atod。为什么?不知道。




  

相关话题

  美国司法部发布声明称,允许美国华人继续用微信,这一声明法律效力如何?微信真的会被完全禁用吗? 
  如何评价北京邮电大学作为公认的计算机顶尖院校却只是211? 
  生物信息博士如果刷完leetcode,计算机水平够用吗? 
  姚安娜毕业于哈佛大学计算机科学和统计学专业,为什么还要进娱乐圈?高学历人才进娱乐圈是趋势吗? 
  目前 CS 本科加硕士,请问博士申请 CS,还是 Neuroscience? 
  有没有一种可能,做出来512g内存的计算机,这样就不需要外存了,那os这门课是不是内容可以少点? 
  为什么很多人认为Macbook触控板好用可以替代鼠标? 
  c++中超出char、int范围的整数怎么存储? 
  C 语言如何判断等差数列? 
  计算机是否可以模拟现世界中的一切? 

前一个讨论
如何看待连锁品牌的长租房装修第二天就出租一事?
下一个讨论
我是民科吗?





© 2025-05-06 - tinynew.org. All Rights Reserved.
© 2025-05-06 - tinynew.org. 保留所有权利