zoukankan      html  css  js  c++  java
  • c语言的注意事项(未完,以后遇到问题继续添加)

    1、注释:

    c语言中的注释有:“” // “”、'" /* ... */ "。

    需要注意的是" /*...*/  "和 表达式  y=x/*z 中的 " /* ";

    y=x/*z 这个表达式的意思是y=x除以*z(*z是指针目标的值)。但是这样写表达式会报错,因为编译器会把 “ /* ”误认为是注释语句的开头。只有开头没有结尾就会报错。

    修改方案 : A.   y=x/ *z,在 / 和 * 之间加一个空格。   B.  y=x/(*z),把 *z 括起来。

    2、变量、函数的规范化(纯属个人习惯)

    局部变量以小写字母命名;int student_id;

    全局变量以首字母大写方式命名(骆驼式);int Student_Id;

    宏定义常数以大写字母命名;#define STUDENT_ID  10    

    定义类型小写 ; typedef unsinged int uint32_t ;

    变量的作用域越大,它的名字所带有的信息就应该越多。

    变量要注释他的功能。函数头也应该进行注释,例如函数名称、输入参数、返回值、功能说明。


    3、运算符
    优先级:

    比如:if( x/3 || y*2 && z&j ) 这个表达式的运算优先级比较复杂,可以加上括号()。if(  ((x/3)  || ( y*2) ) &&  (z&j)  这样加上括号就可以百分之百的按照自己的想法运算。运算符的优先级只用记得  +、- 、* 、/ 和()就可以了。

    4、if()语句里面的 =  和 ==:

    if(a==0)和 if(a=0)的区别:  if(a==0) 里面 == 是比较运算 得出的结果为 true 和 false 也就是非零和 0。if(a=0)中 = 是赋值运算 ,先赋值 得到的结果是 if(a) ,a=0 则为false,a非零则为true。

    5、不同数据类型之间比较的注意事项:布尔值不宜直接和0 、1 比较因为根据编译器的不同默认布尔值true 可能是 1,也可能是-1。 浮点型(小数)不能和整数用==和!=比较,因该用>=、<=来比较。

    6、不管有没有无效分支, switch函数一定要defaut这个分支。防止程序运行过程中出现的意外 。
    7、函数的参数和返回值没有的话最好使用void


    8、一些常数和表格之类的应该放到code中去以节省RAM 。
    code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,
    对应的还有data是存入RAM的意思。

    code达到了一个宏定义的效果,但是用code修饰的常量能用指针指向它,宏定义的常亮指针不能指向它。

  • 相关阅读:
    Java Springboot webSocket简单实现,调接口推送消息到客户端socket
    对象实体和对象引用的区别
    SpringBoot中JPA使用动态SQL查询
    windows10环境安装RabbitMQ
    SpringBoot集成ElasticSearch
    SpringBoot+神通数据库+JPA
    【bug记录】jpa 解决org.hibernate.lazyinitializationexception could not initialize proxy
    mysql 语句中 sum函数求和 null 变 0
    springBoot文件下载跨域问题+前端访问后台下载方法不弹出下载框的问题
    C# HTTP Get Post 提交数据可以指定代理IP、指定浏览器、指定来源
  • 原文地址:https://www.cnblogs.com/wangjinshan/p/9517487.html
Copyright © 2011-2022 走看看