<你必须知道的495个C语言问题>学习笔记 (二 )完

 有点不理解的,决定摘录汇总即可

           2 结构、联合和枚举

2.1  struct x1 { . . . };和typedef struct { . . . } x2   区别

    前者是"结构标签",后者是"类型定义";在后文中你需要用 “struct x1”引用第一种, 而用 “x2”引用第二种;第二种声明更像一种抽象类新--用户不必知道它是一个结构, 而在声明它的实例时也不需要使用 struct 关键字

2.10  自动的位填充(所以sizeof可能返回值大于结构期望值)

        为了保持结构中后面的域的对齐, 这也许是必须

的。为了高效的访问, 许多处理器喜欢 (或要求) 多字节对象 (例如, 结构中任何大于 char 的类型) 不能处于随意的内存地址, 而必须是 2 或 4 或对象大小的倍数。

2.17  显示枚举值符号的方法

  可以写一个小函数, 把一个枚举常量值映射到字符串。(为了调试的目的, 一个好的调试器, 应该可以自动显示枚举常量值符

13 库函数


13.9 对多于内存的数据排序可以使用" 外部排序”法

13.10 在C里面取得当前时间,直接调用 time(), ctime(), localtime() 和/或 strftime() 就可以了

 13.14 生成随机数

            

         rand()%N      //直接但不建议,因为许多随机数发生器的低位比特并不随机
        //一个较好的方法(RAND MAX 在 ANSI 里 #define 在 <stdlib.h>。)
          (int)((double)rand() /((double)RAND_MAX + 1) * N)
          //另一个方法: 
         rand() / (RAND_MAX / N + 1)

         

20 其他

    20.6 判断机器的字节顺序是高字节在前还是低字节在前

      有个使用指针的方法:

int x = 1;
if(*(char *)&x== 1)
printf("little-endian\n");
else
printf("big-endian\n");


20.17 return 语句外层的括号是可选的


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值