- 博客(13)
- 问答 (1)
- 收藏
- 关注
原创 对一些坏代码的总结、批判
今天就工作过程中遇见的烂代码、坏代码做一些总结。公司代码一:bool CBusSystem::UpdataBus(BUS_INFO* bus){ m_BusMapLock->lock(); CBusInfo* tmp = GetBusByGuid(strutil::format("%d", bus->dwID)); if (tmp) { tmp->m_Ln...
2018-08-03 18:25:35
306
原创 编程规范
1变量的命名规则作用域 + 匈牙利命名规则 + 驼峰命名规则 + 设计意图1.1作用域全局变量: g_ 类成员变量: m_局部变量: 无 1.2匈牙利命名前缀(常用)arr 数组b 布尔型(bool)c 字符(char)n 带符号短整形(short)i 带符号整形(int)u 无符号整形(unsinged int)l 带符号长整形(lon...
2018-07-19 13:58:47
444
原创 基础技术二:CRITICAL_SECTION 创建自动锁
class CMyLocker{public: CMyLocker(); ~CMyLocker(); /** @brief enter critical section */ void Enter(); /** @brief leave critical section */ void Leave();protected:private: CRITICAL_SECTION
2018-01-03 16:12:27
790
原创 基础技术一:MFC 线程对象封装
class CThreadObj{public: CThreadObj(); virtual ~CThreadObj(); /** *@brief 启动线程接口 */ void StartThread(); /** *@brief 退出线程接口 *@author LuZhiLong[2017.05.11] */ void ExitThread
2018-01-03 15:46:54
541
原创 项目上的一些总结
一、 在会议开始前一天,将讨论的文档、主题邮件发送参与者。 重要:将会议讨论的结果、结论、再议的点反馈给会议参与者。 二、 项目过程中大框架设计的分享(人月神话的外科手术队伍)。将设计的思想、方向、子系统的划分、子系统间的耦合进行讨论。 三、 项目过程中编码风格的统一(包括小的技术点:内存管理、资源管理等,名称:变量、函数、类型等) 四、 产品需求(个人理
2017-08-25 09:38:29
274
原创 调试基础:函数 _CrtSetBreakAlloc()使用blog
函数 _CrtSetBreakAlloc(long lBreakAlloc)。函数说明 MSDN 链接:https://msdn.microsoft.com/en-us/library/4wth1ha5.aspx 在分配块号 lBreakAlloc 的内存时,程序中断。以此来定位内存泄露的大概位置。注:必须在内存分配之前调用该函数来设置断点。 第一步:发现有内存泄露:
2017-04-11 17:38:44
1702
原创 MFC 基础:静态加载DLL ,main()、main全局变量、dllMain()、dllMain全局变量的一些说明
现今的程序在大部分情况下,都或多或少引用了一些功能库。因此了解动态库DLL的加载和初始化,有利于避免一些依赖问题的出现。 动态库的加载有 动态加载 和静态加载两种方式。现仅对静态加载的方式进行一些跟踪,来得出一些顺序上的结果。 程序主程入口:int main(char argc, char *argv[]); DLL库的入口 :BOOL WINAPI Dll
2017-03-20 17:26:46
2121
原创 《人月神话》-摘要一
1)要成为系统构建,程序必须按照一定要求来来编制。输入输出在语法和语义上与精确定义的接口一致。 精确定义的接口:符合支持实际的 应用情景。 输入输出:很明确,简单的输出。与 函数功能单一性统一。2)功能模块的相互交互产生 bug。交互包涵错误,边界极值的情况,引起bug。 功能模块 不应该依赖模块以外的逻辑,依赖接口(抽象的使用)。
2016-12-22 09:10:07
832
原创 工具:SVN 管理软件版本的一些心得
一直使用的版本管理器 SVN存在的现象,1)提交版本的说明一般是简短的一句话。(例:修复bug,增加**功能)2)功能增加完后之后提交。(可能修改、增加 N多的函数)3)多人对同一个工程的代码管理。(公共部分的代码修改,处理责任之外的代码文件)4)down 下来的代码需要额外的去配置,寻找库文件较好的方法总结1)单一功能增加就应该提交SVN2)提交说明应该详
2016-11-09 11:17:25
522
原创 visual studio随机数问题
项目过程中遇到需要使用随机数。于是研究了一下visual studio 随机数的机制。可以收纳成公共方法的接口。val 在区间【m,n):(rand()%(n - m+1) ) + msrand()设置随机数的种子rand()伪随机数产生器,它是基于 “随机种子” 的线性随机。种子不同,随机数也不同。一般使用的机制,以时间为种子。srand(
2016-11-09 10:15:28
4655
原创 关于 _cplusplus 的一些说明
编译器在编译过程会对一些函数,变量重命名:加上一些字符和符号。这种重命名的过程在编译器内部是可逆的,错误提示的代码为逆过程,即恢复命名。因为存在这种重命名的过程,c++ 函数在提供给 c 函数使用的过程会出现一些问题。例如找不到相应的函数,未实现函数。一些解决办法: _cplusplus_cplusplus 标识c++编译器#ifdef __cplusplusE
2016-11-09 09:58:00
697
原创 visual studio 字节对齐 pack应用
32位的电脑内存一般都是4 bytes对齐。struct _ONE_BYTE_STRUCT{char m_byte;};struct _ONE_BYTE_STRUCT 结构体对象占用内存 4byte;visual studio IDE 编程使用 关键字。修改内存对齐字节数#pragma pack(1)//定义的结构体 1字节对齐......//去掉内存 4
2016-11-09 09:05:25
2566
原创 配置 release 版本调试状态的
在windows 平台开发中,碰到了一种情况:debug 版本测试case 没有问题,但是发布测试的版本却出现bug。原因1,release 版本的变量值不会赋初值,但是debug版本有时候有初值2,release 版本去掉了调试信息,去掉了 null 诊断。延申:不要用null诊断来替代 if (null) 检测。3,release 版本在发布之前没有调试,测试 case。
2016-11-04 17:05:27
1048
空空如也
两年的泥腿子c/c++程序员,迷茫。求解惑。
2013-09-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人