`
文章列表
模板(Templates)                模板,顾名思义,就是预先做好的样板,利用该样板可以制造出样式相近的产品,但是产品可能所用材料不同,却具有相同的功能操作,比如,要想铸造铝锅,首先要有个模子,其后就是 ...
Operating System Interface Design Between 1981-2009 A Graphical User Interface (GUI for short) allows users to interact with the computer hardware in a user friendly way. Over the years a range of GUI’s have been developed for different operating systems such as OS/2, Macint ...
经典的编程引言   转自:http://coolshell.cn/?p=808   下面的这些经典的引言来自英文,也许有些我翻译的是不很好,所以,我提供了中英对照,如果有问题,请大家指正。 过早的优化是万恶之源。Premature optimization is the root of all evil!- Donald Knuth 在水里行走和以一个需求规格进行软件开发,有一点是相同的,那就是如果水或需求都被冻住不 了,那么行走和软件开发都会变得容易。Walking on water and developing software from a specific ...
COM常识 转自:http://blog.csdn.net/sam1111   下面这个东西是我在01年学习COM时的一个笔记,原来发表在腾讯社区里,并被收入C/C++板块的精华区中。近日重拾COM,将它稍做修改,挪到这里,以便查找。 ============= ...
C++模板类的分离模式      一般类的定义和实现组织方式:将定义放在.h文件中,实现放在.cpp文件中。      C++中的模板是C++在发展过程中新添的新生力量,template的声明和实现不同于一般的类定义与实现和函数的声明与定义,故在含有模板的C++程序的组织方式就不同于一般的定义与实现相分离的方式。       我曾经遇到的问题:  当在GUN中编译时老是无法通过,错误信息大概是无法找到函数。然后将程序搬到VC6下编译,同样出现连接错误。       问题原因:       C++标准中说明:在使用模板时C++支持两种程序组织方式:包含模式与分离模式。包含模式也就 ...
C++模板代码的组织方式:包含模式(Inclusion Model) 转自:http://blog.csdn.net/sam1111/      说明 :本文译自《 C++ Template: The Complete Guide 》一书的第 6 章中的部分内容。最近看到 C++ 论坛上常有关于模板的包含模式的帖 ...
转自:http://blog.csdn.net/sam1111/archive/2003/05/08/9776.aspx   C++ STL简介   一、STL简介        STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普 ...
关键字auto、static、register、const、volatile 、extern   变量修饰符总结 (1)auto   这个这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的 ...
使用ioctl与内核交换数据 使用ioctl与内核交换数据   本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 1. 前言   使用ioctl系统调用是用户空间向内核交换数据的常用方法之一,从ioctl这个名称上看,本意是针对I/O设备进行的控制操作,但实际并不限制是真正的I/O设备,可以是任何一个内核设备即可。 2. 基本过程   在内核 ...
一个microsoft的.exe程序的启动过程    学习windows 编程从mfc角度来说可分为两部分那就是WinMain函数以前的,和WinMain函数以后的。前者涉及很多windows操作系统内部的知识,后者么看mfc源码就可以了。虽然大多数程序不需要你了解太多关于os加载应用程序这方面的知识,但我认为能较深入了解windows os的运行情况对程序员是很有帮助的。    最近我正在研究一个microsoft的.exe程序的启动过程,这也是以上所说的关于os如何加载程序的知识,它包括进程创建,主线程 创建,PE文件加载,程序c运行时启动函数以及四种main函数的调用等 ...
C语言传值操作     C语言中的函数参数传递都是传值操作,所以要使被调用函数改变调用函数的属性内容,则需要传递所需修改属性的指针——属性地址。    例1: void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void) { char *str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str); }   ...
C语言中的运算符及其优先级   优先级 运算符 名称或含义 使用形式 结合方向 说明 1 []
Linux 的多线程编程的高效开发经验 Linux平台上的多线程程序 开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望这些经验可以帮助读者们能更好更快的熟悉 Linux 平台的多线程编程。   我们假设读者都已经很熟悉 Linux 平台上基本的线程编程的 Pthread 库 API 。其他的第三方用以线程编程的库,如 boost,将不会在 ...
POSIX 线程详解(3) —使用条件变量提高效率 本文是 POSIX 线程三部曲系列的最后一部分,Daniel 将详细讨论如何使用条件变量。条件变量是 POSIX 线程结构,可以让您在遇到某些条件时“唤醒”线程。可以将它们看作是一种线程 ...
POSIX 线程详解(2) ——称作互斥对象的小玩意 2000 年 8 月 01 日 POSIX 线程是提高代码响应和性能的有力手段。在此三部分系列文章的第二篇中,Daniel Robbins 将说明,如何使用被称为互斥对象的灵巧小玩意,来保护线程代码中共享数据结构的完整性。       互斥我吧!     在 前一篇文章中 ,谈到了会导致异常结果的线程代码。两个线程分别对同一个全局变量进行了二十次加一。变量的值最后应该是 40,但最终值却是 21。这是怎么回事呢?因为一个线程不停地“取消”了另一个线程执行的加一操作,所以产生这 ...
Global site tag (gtag.js) - Google Analytics