C语言杂记1

                                                                                                               C语言杂记

       注意signed int 与 unsigned int 之间的比较,与运算因为当int 型变量为-1时很可能被升级成无符号整型,就导致取反+1这种运算的产生,出现无法控制的很大的数。

      malloc(strlen(str))绝对错误地语句,考虑字符串需要+1.

      NULL 与NUL的区别:

               NUL:用于结束一个字符串。

               NULL:表示什么也不做(空指针)。

     在switch语句中defaut关键字可以放在任意位置,编译器不检查,可能导致无意的跳过case.

     注意变量的作用域如果过宽会对库函数造成影响。其中有一个all -- or -- nothing 原则,一个符号要么全局可见,要么对其他文件都不可见。

     C语言似乎比其他语言更接近标记歧义性的曲折边缘。

    结合性:

              只用于表达式中出现两个以上相同优先级的操作符的情况,用于消除歧义。

   gets()函数导致蠕虫病毒,并且现在的BUG还没有清除。

   sizeof的操作数最好加上括号,不然容易引起歧义如(sizeof*p)

    C语言 还有最大一口策略,如果下一种标记有超过一组的解释方案,编译器将自动选取能组成最长字符序列的方案。

   注意const 的用法

   指针的声明方法

   结构体的内存对齐问题

   为了代码的可读性,变量的声明应该与类型的声明分开

   一个整形参数一般会被传递到寄存器中,而结构体参数很可能会被传递到堆栈中。

  define 与typedef的区别

     1.define与其他的类型相配进行扩展,typedef却不行

     2.在连续变量出现时,define只控制前一个变量,typedef则控制所有的变量

     

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/zmrlinux/p/4921434.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值