读《0 bug C/C++商用工程之道》——记录1
一、程序真谛
1.程序就是“搬数”
动作:读取——技术——写出(输入——处理——输出)
数据结构决定数据如何组织,搬动起来效率较高
算法语言决定了如何搬效率较高
2.程序就是“写文章”
双可读性:程序员阅读无障碍、计算机阅读无错误
3.程序就是“复制”
建立自己常用工程程序库,将常用算法和程序经过多年总结和归纳,使之具有高可用性和高正确性,在后期工作时可直接“复制”,缓解工作压力
二、定名
1.函数命名原则
1)首字母大写
2)函数名可很长,要表意清晰
3)无参数的函数在括号内使用void
2.变量命名原则
1)以小写的缩写前缀显示说明该变量的类型,如nCount,pBuffer
2)对于不同作用域的变量,如类成员变量和全局变量,必须以显式的m_和g_前缀区分
3)变量名表意要清晰
4)变量在函数使用过程中严禁转义
5)静态数组指针以sz为前缀,不需要后续程序释放
6)动态申请指针以p为前缀,需要后续程序释放
7)结构体内部成员变量用m_作前缀
8)匈牙利命名法常用的变量前缀
n int
c char
b bool
sz 静态数组
p 动态指针
us unsigned short
ui unsigned int
ul unsi
相关文档:
设置:
1. Tools/Projects and Solutions/VC ++ Directories
Inlcude files: C:\Program Files\MATLAB\R2009a\extern\include
Library files: C:\Program Files\MATLAB\R2009a\extern\lib
2. Property
Configuration Properties/Linker
......
哈哈!有幸在某网站发现这篇文章,读罢,觉得蛮有道理,发来大家一起共勉之
总是被同学们问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。
' J$ |0 ?! p% w" t5 D6 D: c9 |0 B
一家之言,欢迎拍砖哈。
1、可以考虑先学习C.
/ U$ X+ X/ P; Y ......
网上搜索了一大堆去掉/*和*/之间注释的代码,就像<The C Programming Language>练习1-23里有人说的一样
大部分都会被以下的程序broken,这个功能看起来简单,实际上很有难度.网上实现的代码,除了我找到的一个用文件指针实现的没有问题外,其余的都存在各种bug,不信的话就用以下的程序测试一下:-),当然这个程序也不够完善 ......
上一篇中我们在python端的做法是每次读取一个数据块,然后将这个数据块传递进C扩展模块中去,但对于目标文件的数据写入是在C扩展模块中完成的,但其实可以更面向对象一点,不是吗?原来outfp是一个文件指针,不如改成一个从Python中传递一个文件对象到C模块里去,这个文件对象有自己的write方法,这样在C扩展模块中你就可以 ......