张宏江:工程水平决定创新能力(转载于百度百科)
摘要:张宏江:工程水平决定创新能力 在研究环境里,无所谓成功和失败,而做工程、做产品,最后只有一个衡量——这个产品最后在市场上能不能卖出去? 中国企业拥有世界上最强大的低成本制造体系,拥有最有潜力的广阔市场以及最灵活最本土化的营销体系,现在又有越来越多的企业把创新提到战略高度,开始大力发展自己的研发和设计能力。但是中国企业依然很难持续制造出成功的产品。在一个产品从最初的设计定义,到最终按时推向市场的一系列复杂环节上,大部分中国企业的管理经验还停留在项目管理的阶段上,只考虑到时间维度,而忽视了质量和成本的平衡。 其实,连接这些复杂环节的就是“工程”。关于工程,有各种各样的定义,但是过滤掉众多复杂...
阅读全文
posted @
2011-10-19 16:23
影一辉
阅读(292)
推荐(0)
C/C++内存知识(四)
摘要:C/C++内存知识(四)有了malloc/free 为什么还要new/delete ?malloc与free 是C++/C 语言的标准库函数,new/delete 是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放
阅读全文
posted @
2011-10-10 16:23
影一辉
阅读(226)
推荐(0)
C/C++内存知识(三)
摘要:C/C++内存知识(三)指针参数是如何传递内存的?如果函数的参数是一个指针,不要指望用该指针去申请动态内存。函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,为什么?void GetMemory(char *p, int num){ p = (char *)malloc(sizeof(char) * num);}void Test(void){ char *str = NULL; GetMemory(str, 100); // str is stillNULL still strcpy(str, "hello"); //
阅读全文
posted @
2011-10-09 17:55
影一辉
阅读(249)
推荐(0)
C/C++内存知识(二)
摘要:C/C++内存知识(二)计算内存容量用运算符sizeof 可以计算出数组的容量(字节数)。int a[3],sizeof(a)的值是12(注意别忘了’\0’)。p是指针,指向a,但是sizeof(p)的值却是4。这是因为sizeof(p)得到的是一个指针变量的字节数,相当于sizeof(char*),而不是p 所指的内存容量。C++/C语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针,如下示例:void Func(char a[100]){ cout<< sizeof(a) << endl; /
阅读全文
posted @
2011-10-09 17:35
影一辉
阅读(182)
推荐(0)
C/C++内存知识(一)
摘要:一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。 4、文字常量区 — 常量字符串就是放在这里的,程序结束后由系统释放 。...
阅读全文
posted @
2011-10-09 16:58
影一辉
阅读(238)
推荐(0)