现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-12-04 22:40 工业·编程 ⁄ 共 3736字 暂无评论
    随着诸如代码重构和单元测试等方法引入实践,调试技能渐渐弱化了,甚至有人主张废除调试器。这是有道理的,原因在于调试的代价往往太大了,特别是调试系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。而这些难以定位的BUG基本上可以归为两类:内存错误和并发问题。而又以内存错误最为普遍,即使是久经沙场的老手,也有时也难免落入陷阱。前事不忘,后世之师,了解这些常见的错误,在编程时就加以...
阅读全文
2012-12-04 22:38 工业·编程 ⁄ 共 2835字 暂无评论
TCP/IP协议同ISO/OSI模型一样,也可以安排成栈形式。但这个栈不同于ISO/OSI版本,比ISO/OSI栈少,所以又称之为短栈。另外,需要知道的是:TCP/IP协议栈只是许多支持ISO/OSI分层模型协议栈的一种,是一个具体的协议栈。 对于TCP/IP协议栈划分为几层更合适,多年来专家们一直未达成共识,大部分对TCP/IP协议栈的描述都假定它占据了协议结构的4到5个功能层。下面我们对这两种主流的分层方法分别进行描述。 1 基于4层的TCP/IP协议栈...
阅读全文
2012-12-04 22:25 工业·编程 ⁄ 共 10636字 暂无评论
一、数组求和     给定一个含有n个元素的整型数组a,求a中所有元素的和。可能您会觉得很简单,是的,的确简单,但是为什么还要说呢,原因是这道题要求用递归法,只用一行代码。 分析: 1. 如果数组元素个数为0,那么和为0。 2. 如果数组元素个数为n,那么先求出前n - 1个元素之和,再加上a[n - 1]即可 [cpp] view plaincopy 1.  // 数组求和  2.  int sum(int*a, int n) ...
阅读全文
2012-12-04 22:24 工业·编程 ⁄ 共 6638字 暂无评论
1、FACTORY——工程模式? 追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory  工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提...
阅读全文
2012-12-04 22:22 工业·编程 ⁄ 共 850字 暂无评论
一、C 1.几条规则 (1)char类型一般是8bit,但ANSI C里没有硬性规定其长度,某些嵌入式编译器可能是16bit (2)short和long类型的长度不相同 (3)int类型通常同具体机器的物理字长相同 (4)short通常是16bits, int通常是16bits or 32bits每种编译器可以根据硬件的不同自由确定, 但是short和int必须最少是16bits, 而long类型必须最少是32bits, 并且short必须比int和long类型要短。 2.32位机上类型长度 size of char: 1 size o...
阅读全文
2012-12-04 22:19 工业·编程 ⁄ 共 5526字 暂无评论
1.判断奇偶 只要根据最未位是0还是1来决定,为0就是偶数,为1就是奇数。因此可以用if (a & 1 == 0)代替if (a % 2 == 0)来判断a是不是偶数。 下面程序将输出0到100之间的所有奇数 [cpp] view plaincopy for (i = 0; i < 100; ++i)      if (i & 1)          printf("%d ", i);  putchar('\n');  2.交换两数 [cpp]...
阅读全文
2012-12-04 22:05 工业·编程 ⁄ 共 5911字 暂无评论
    之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很单?)。我们尽可以把它看成是C++的基本数据类型。     首先,为了在我们的程序中使用string类型,我们必须包含头...
阅读全文
2012-12-04 22:00 工业·编程 ⁄ 共 2004字 暂无评论
标准库Vector类型使用需要的头文件: #include <vector> Vector:Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型。 一、 定义和初始化 Vector<T> v1; //默认构造函数v1为空 Vector<T> v2(v1);//v2是v1的一个副本 Vector<T> v3(n,i);//v3包含n个值为i的元素 Vector<T> v4(n); //v4含有n个值为0的元素 二、 值初始化 1> 如果没有指定元素初始...
阅读全文
2012-12-04 21:58 工业·编程 ⁄ 共 506字 暂无评论
不同的标识符有着不同的作用域。按作用域的大小可分为如下5种,从大到小依次为: ·程序级 ·文件级 ·类级 ·函数级 ·程序块级 程序级的作用域最大,包括组成该程序的若干个文件。属于程序级作用域的有外部变量或对象和外部函数,在定义它的整个程序中都是可见的。 文件级作用域有内部函数和外部静态变量或对象。这种作用域的范围是在定义它的文件内,并且是从定义时开始到该文件结束。另外,宏名的作用范...
阅读全文
1.要养成一个习惯, 经常花时间阅读别人编写的高品质代码. 2.要有选择地阅读代码, 同时, 还要有自己的目标. 您是想学习新的模式|编码风格|还是满足某些需求的方法. 3.要注意并重视代码中特殊的非功能性需求, 这些需求也许会导致特殊的实现风格. 4.在现有的代码上工作时, 请与作者和维护人员进行必要的协调, 以避免重复劳动或产生厌恶情绪. 5.请将从开放源码软件中得到的益处看作是一项贷款, 尽可能地寻找各种方式来回报开放源码...
阅读全文