• 第三周总结


     

    这一周外出培训,学习了一些关于硬件的一些知识,简单了解了硬件的工作原理,了解了PIT,中断等知识,是一些嵌入式的基础知识。外出培训期间,一直在消化上一次老师讲的东西。

    1.学习使c.vim工具,方便编程。老师给了一个c.vim插件的指令表,自己在网上找教程完成了安装并用起来c.vim插件并写了博客介绍自己的安装和使用的过程。这一周坚持每天晚上写代码,有意识的去用c.vim插件,熟悉之后确实能够提高效率,减少很多不必要的工作。

    2.规范书写代码,注意加注释。之前写代码没有注意到代码分层次,结构化的编程,写出来的代码很乱,看起来比较费劲。写代码没有注释,当代码量太大的时候,找不到自己想找的代码。这周自己找了一个代码量比较大的一个程序SM3算法,通过自己写和看整个代码发现规范写代码的好处,便于查找,思路清晰。对于自己写的函数,在函数前加注释,交代函数的功能,函数中参数的意义,是否有返回值,返回值的意义。返回值的意义一定要写清楚,返回值返回的就是这个函数的状态。

    3.模块化编程。整个工程来说将不同文件放在不同的文件夹中,源码放在src文件夹中,中间生成文件放在bin文件夹中,头文件放在include文件夹中等,方便管理。不同模块的程序放在不同的.c文件中,每个不同功能的程序对应一个测试程序。举例来说,一个算法的工程中包括SM2.c,SM3.c,SM4.c等,每个算法对应一个测试程序test_SM2.c,test_SM3.c,test_SM4.c。如果需要测试某一个模块,只需要在主函数中调用这个模块的程序就可以了。

    模块化编程还要注意的一点就是函数的命名,将那些函数放在一个模块中,要遵循是“高内聚,低耦合”,简单而言,耦合关系就是相互依赖关系,低耦合的意思就是不同模块之间的依赖关系降低,相互调用比较频繁的函数应当放在同一个模块内,这样就达到了“高内聚,低耦合”的效果。

    4.学习构建makefile文件

    Makefile文件相当于一种脚本语言,目的是实现自动化编译。makefile文件包括显示规则,隐式规则,变量定义,文件指示,注释五个部分。

    具体包括:

    (1)书写makefile规则,其中包括使用基本规则,使用隐式规则,使用伪目标,使用通配符,使用vpath变量和vpath关键字。

    (2)使用命令,其中包括显示命令,执行命令。

    (3)使用变量,其中包括使用普通变量,使用变量中的变量,追加变量的值,自动化变量。

    (4)使用判断条件,其中包括条件表达式ifeq,ifneq,ifdef,ifndef.

    (5)使用函数,其中包括函数调用的语法,字符串处理函数,文件名操作函数,foreach函数,call函数,origin函数和shell函数。

    5.学习使用gdb调试器

    gdb调试器主要作用就是方便程序的调试。

    主要功能有:

    (1)插入断点,插入观察点进行调试。

    (2)查看运行时数据,其中包括变量的值,表达式的值,数组的值,查看内存,自动显示变量,查看寄存器,查看gdb环境变量等。

    (3)改变程序的执行,可以修改调试运行时变量的值,可以跳转执行,可以强制调用函数,可以强制函数返回。

    这一周主要是在消化老师给我讲的东西和学习的linux系统下工具的应用,工具的应用没有什么理解不了的东西,主要还是实践,现在学习了makefile文件的构建只是能写简单的makefile文件,能看懂一些makefile文件,要到更高的水平还是要多去写,多实践。gdb调试工具这两天在测试的时候一直在用,觉得确实方便很多,特别是在程序出现错误的时候,能够比较快速的找到错误在哪,继续通过gdb调试来找到错误根源解决程序的错误。还有一点感悟就是学习编程过程中还是有大量的东西需要记忆的,但是这些记忆有一定的规则,大多都是英语单词或者英语单词的首字母,缩写等。因此,加强英语学习也是学好编程的关键。学编程中有大量的命令需要记,最好的记忆办法就是多练,用多了自然就记下来了。下一周开始新的一篇,Linux进程操作的学习,同时补发这一周关于makefile文件构建和gdb调试工具使用的博客。

  • 相关阅读:
    windows cluster 心跳检测阀值优化
    添加普通用户为sudoer
    每日备份脚本目录shell
    linux基础配置
    表变量 临时表 使用场景
    mysql分组排序row_number() over(partition by)
    replication_较少延迟时间
    SQL Server 参数化 PARAMETERIZATION
    thinkPHP RBAC模块
    thinkPHP 微信sdk
  • 原文地址:https://www.cnblogs.com/Mr--Yang/p/6161093.html
Copyright © 2020-2023  润新知