偶尔整理文件,发现了从业第一家公司,做的培训结业项目:源码分析工具。

时间飞逝,回首过去,感激良多。现在很少有企业有耐性,培训一个员工半年才让上岗了。

培训结业项目,三个人作为小组,用公司的基本类库,做了一个源码分析工具。

从需求分析,软件设计,文档落地,功能实现,提交打回反复修订。一个月时间大家相互协作,走完了整个软件开发流程,那时候我才真正明白,什么叫做团队合作,而且这种软件的流程思维,和严谨的工作态度,至今仍深深地影响着我。

工具实现主要需求:

1、统计分析 C/C++ 代码,.h, .cpp, .c 三种文件。

2、统计文件的个数,每个文件的声明个数,每个文件的函数实现个数。

3、每个文件,函数的平均行数。

4、每个文件,函数最大行数的行数数目。

功能大致实现原理:

对源码文件的分析,根据C/C++ 源码函数实现和声明的特点。

源码文件,主要是处理注释行,空白行,空白符,花括号,函数类型,等等的处理。

int func();
int func() {}

例如上面函数的特征:

int 是变量类型,中间有空格,或者 tab 等空白符,变量名称 “func”后面紧跟 圆括号配对,就是一个声明或者函数。

如果直接是右圆括号“)” + ";" 这样的格式,就可以确定它为声明。

如果是 右圆括号“)” + "{" 就确定它为函数。当然函数内部也会存在很多花括号,主要都是这些特殊字符的配对分析。

上述的源码统计分析处理流程,只是粗略的分析统计,更多的实现细节策略是在源码调试分析中,处理的。

回忆 C/C++ 源码统计分析小工具相关推荐

  1. 到家服务公司php源码,微信小程序-仿五洲到家商城源码

    微信小程序-仿五洲到家商城源码 微信小程序仿五洲到家商城源码是一款精仿五洲到家app界面的小程序源码,适用于各类小程序商城系统,功能及模块均值得借鉴! 对应功能模块 > * 首页(定位成功情况且 ...

  2. 省钱兄同城跑腿小程序源码uniapp前端模版源码(小程序+APP+H5)

    开源省钱兄同城跑腿源码,目前只开源用户端V2版本部分核心模块源码提供学习研究 使用uniapp技术,提供学习使用不可商业 适配支持公众号+APP+H5+小程序,使用Hbuilder导入即可运行 #功能 ...

  3. Linux内核源码阅读以及工具(转)

    Linux内核源码阅读以及工具(转) 转载地址:Linux内核源码阅读以及工具(转)

  4. 大商创小程序源码_小程序直播系统有哪些基本功能

    小程序直播系统源码能够构建出高品质的直播平台,现如今较为流行的"直播间+电商.""直播间+教育"等新型的"直播间+"等多元化的直播间方向都不 ...

  5. 短视频app源码、小视频源码存储功能如何实现?

    在短视频app源码(小视频源码)开发中,考虑到后期用户上传短视频时需要大量应用到存储功能,故而需要实现这一功能,具体需要怎么做呢,本文将以云豹短视频app源码为例,为大家进行讲解. 一.阅读前请注意: ...

  6. 智慧新零售收银系统包含pc源码安卓小程序进销存等等功能

    智慧新零售收银系统包含pc源码安卓小程序进销存等等功能这里写自定义目录标题 欢迎使用智慧新零售收银系统 欢迎使用智慧新零售收银系统 零售开发语言有:php.HTML5.Java 安卓端收银.助手:原生 ...

  7. 【附源码】小程序初窥之简单查单词

    新年假期百无聊赖,于是就看了一下微信小程序的开发方法,花了两天时间入了个门,这里记录一下. 阅读之前,先确定你知道基本的 html+css+js 语法,这样就能更好地和我一样,以一个新手的视角来理解小 ...

  8. H5盲盒商城网站源码开发小程序抽奖系统商城搭建 VUE+PHP后台项目

    这是H5盲盒商城网站源码开发小程序抽奖系统商城搭建 VUE+PHP后台项目(代码不加密,开源) 1.带推广二维码功能 2.含充值3级分销功能 3.盲盒回收成余/额功能 等功能 可以个性化定制开发等 源 ...

  9. 教育培训学校源码微信小程序源码下载,带课件/习题/活动插件,支持小程序与公众号双版本

    这是一款超强大教育培训学校源码 内含超强大超多的功能 大家看文章末的后台管理就能知道到底有多强大了 比如功能有以下等等功能 课程功能,商城管理,多人团购,限时抢购,接龙团,砍价功能,课程团购,课程包 ...

最新文章

  1. python线下培训-北京哪里有Python线下培训辅导班
  2. linux编程基础_第1篇 Linux系统编程 -多线程基础
  3. c++基础——程序流程结构之选择结构
  4. c语言中time相关函数
  5. 创建win32 dll
  6. window下php5.6-x64-ts可用php_redis.dll文件
  7. 盘点那些让人上火的提问方式(论如何让交流更高效)
  8. 计算机用户管理怎么进入,我有计算机管理员和受限用户不出现欢迎使用直接进入受限用户怎么办...
  9. 使用C#调用非托管DLL函数
  10. 虚拟机中centos7找不到vim命令的解决方法
  11. Android毕业实践报告,毕业实习报告范文
  12. Radasm使用简明手册(中文版)
  13. 无线传感器网络中的MAC协议
  14. html怎么设置字体为微软雅黑,css如何设置字体为微软雅黑
  15. 开机出现recovering journal解决办法
  16. 清橙OJ A1036.分解质因数
  17. 《流浪方舟》- 废土世界的冒险之旅
  18. 研发、交付、市场之间的会议,有这些可借鉴的创新环节
  19. C++之让我不爽的地方(Java转C++,因为不习惯所以不爽)
  20. 面试官:让你实现一个秒杀系统,你会怎么设计?

热门文章

  1. html中查看必应地图,必应地图显示点击事件经纬度
  2. 10亿条数据去重后排序和在线日志人数统计
  3. 是时候考虑一下居家协同办公了
  4. Ubuntu锁屏突然失效
  5. CPU为AMD的电脑如何配置 Android Studio以及Genymotion模拟器
  6. 年化收入130亿!智能云成百度新增长引擎
  7. 知识分享之好用的工具——RaiDrive本地挂载各种云盘
  8. C# UDP 端口扫描方法
  9. python几个好朋友玩逢7拍腿游戏,从1开始报数,当尾数是7或7的倍数时则不报数而是拍腿,从1数到n,假定无出错,则拍多少下腿。n从键盘输入。
  10. 嵌入式架构 小型系统