06 2013 档案

【逻辑】经典过桥问题 【转】
摘要:一、问题 在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这四人尽快过桥。 假设这四人分别为A、B、C、D。很明显,开始两人拿着手电筒过桥后,手电筒就在桥的另一边了,此时需要已经过桥的那两人中的一个再把手电筒送回桥这边。送手电筒回来过桥也要化时间,所以要选一个跑得比较快的。一个很自然的想法就是,每次.. 阅读全文

posted @ 2013-06-28 11:08 烟雨飘零 阅读(2331) 评论(0) 推荐(0)

变量声明和定义及extern 转载
摘要:在讨论全局变量之前我们先要明白几个基本的概念:1.编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,VC其实做了两 步工作,第一步,将每个.cpp(.c)和相应.h文件编译成obj文件;第二步,将工程中所有的obj文件进行 阅读全文

posted @ 2013-06-27 14:52 烟雨飘零 阅读(596) 评论(0) 推荐(0)

内存管理内幕mallco及free函数实现
摘要:原文:https://www.ibm.com/developerworks/cn/linux/l-memory/为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内存管理器的能力与局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。追溯到在 Apple II 上进行汇编语言编程的时代,那时内存管理还不是个大问题。您实际上在运行整个系统。系统有多少内存,您就有多少内存。您甚至不必费心思去弄明白 阅读全文

posted @ 2013-06-27 10:03 烟雨飘零 阅读(3692) 评论(0) 推荐(1)

导航