2014-03-30工作日志:我的编程风格
来源:互联网 发布:ps软件源码下载 编辑:程序博客网 时间:2024/06/05 03:57
1、头文件和c文件必须引用尧哥的common文件夹。
2、c/c++文件包含的头文件,也尽量和common文件夹中的文件所包含的头文件一致。
3、尽量多留几行空白行,更美观大方。
4、必须保留注释,养成好习惯。
5、在头文件中,要善于使用#ifndef的语句,防止头文件被调用多次而出错。要学会在#ifndef和#endif之间写上对应同名的cpp文件里面的函数的声明,并要会用尧哥的EXTERN_C。
6、程序尽量显得简洁,不要写很多句return语句,可以直接定义一个变量,把要return的内容存在变量中。
如果某些地方均需要释放内存并返回,则可以挑出他们的共同点,找同类一起释放,如:
if (lpCheckOut){HF_MemFree(lpCheckOut);}return dwReturn;
或者是用goto语句,如:lpResultFilePath=(LPTSTR)HF_MemAlloc(sizeof(TCHAR)*(dwCharCount+dwSplitCount+1));if (!lpResultFilePath){LI_INFOPRINT(__HF__ TEXT("HF_GetDoubleSplit:HF_MemAlloc fail\n"));goto exit;}dwSplitIndex=0;for (dwCharIndex=0;dwCharIndex<dwCharCount;dwCharIndex++){lpResultFilePath[dwCharIndex+dwSplitIndex]=lpcFilePath[dwCharIndex];if (lpcFilePath[dwCharIndex]==TEXT('\\')){dwSplitIndex++;lpResultFilePath[dwCharIndex+dwSplitIndex]=TEXT('\\');}}lpResultFilePath[dwCharCount+dwSplitCount]=TEXT('\0');exit:return lpResultFilePath;又如:DWORD DLL_Test(IN LPTSTR lpFilePath,IN LPTSTR lpMd5Content){DWORD dFilePath;DWORD dwReturn=DM_DT_FILENOEXIST_ERROR;LPTSTR lpCheckOut=NULL;if (lpFilePath==NULL){dwReturn=DM_DT_INPUTNULL_ERROR;}dFilePath=GetFileAttributes(lpFilePath);if (dFilePath!=INVALID_FILE_ATTRIBUTES)//验证文件路径是否正确{if (!(dFilePath&FILE_ATTRIBUTE_DIRECTORY)){lpCheckOut=Md5Making(lpFilePath);if (lpCheckOut==NULL){dwReturn= DM_DT_MD5CHECK_ERROR;}if (lpMd5Content!=NULL){BOOL bCheckResult=FALSE;if (stricmp(lpCheckOut,lpMd5Content)==0){bCheckResult=TRUE;}if (bCheckResult){dwReturn= DM_DT_SUCCESS;}else{dwReturn= DM_DT_CHECKDIFFER_ERROR;}}else{_tprintf(TEXT("%s"),lpCheckOut);dwReturn= DM_DT_SUCCESS;}}else{dwReturn= DM_DT_FILEILLEGAL_ERROR;}}else{dwReturn= DM_DT_FILENOEXIST_ERROR;}if (lpCheckOut){HF_MemFree(lpCheckOut);}return dwReturn;}而不是将每个dwReturn都换为return。7、DWORD dwResult;变量的前两个字符或首字符一般是类型的前两个字符的小写。
8、修改完一次,就要更改一次版本号:要每次第三位增加2。
9、使用vc做工程时,往往要调试两种模式,将MBCS改为_UNICODE,UNICODE。
10、必须考虑argc==1或argc==2或argc>2,必须考虑细一点儿,这就是规范。
11、如果某个函数的返回值是一个变量,且这个变量开辟了一段内存空间,则在调用这函数之后,必须要释放掉这个函数赋予返回值的变量。
0 0
- 2014-03-30工作日志:我的编程风格
- 我的编程风格:
- 我的工作日志
- 我的工作日志
- 我的工作日志
- 2014-03-30工作日志:我对如何创建和调用dll的总结
- 我的工作日志1
- 我的工作日志2
- 我的工作日志3
- 我的工作日志4
- 我的工作日志1
- 我的工作日志2
- 我的工作日志3
- 我的工作日志4
- 我的工作日志5
- 我的工作日志6
- 我的PHP工作日志
- 我的linux C编程风格
- 一步一步学习openfire+spark(2)——介绍几个概念
- C++参数传递的三种方式
- 给大家下载csdn资料
- GitHub使用教程
- 一个http请求的详细过程
- 2014-03-30工作日志:我的编程风格
- 在Ubuntu上安装JDK6
- js获取至今天一个月的时间
- Linux系统编程---线程概念
- 一个简单的序列化实现
- 1004/找出现最多的字符串
- 在64位机器中编译出错No architectures to compile for (ONLY_ACTIVE_ARCH...解决方法
- java后台hibernate代码这里的双引号应该怎样理解?
- ubuntu下java环境变量配置 (window上也差不多).