
C/C++
文章平均质量分 64
NeptuneX
这个作者很懒,什么都没留下…
展开
-
浅谈C语言的可变参数
C语言中有些函数使用可变参数,比如常见的int printf( const char* format, ...),第一个参数format是固定的,其余的参数的个数和类型都不固定。 C语言用va_start等宏来处理这些可变参数。这些宏看起来很复杂,其实原理挺简单,就是根据参数入栈的特点从最靠近第一个可变参数的固定参数开始,依次获取每个可变参数的地址。下面我们来分析这些宏。 在std原创 2004-11-04 09:15:00 · 1754 阅读 · 1 评论 -
使用属性对话框的一些经验
1.去掉Apply Now按钮m_psh.dwFlags |= PSH_NOAPPLYNOW; 2.控制OK、Cancel、Appliy Now、Help按钮很简单,它们的ID分别为IDOK、IDCANCEL、ID_APPLY_NOW、IDHELP 3.将属性页上所有的控件都映射到一个值的成员变量上去,这样才能在对控件进行初始化,才能在属性对话框关闭但还没销毁时获取控件的值4.从一个Page原创 2004-11-08 18:29:00 · 1823 阅读 · 0 评论 -
C语言:陷阱和缺陷
原著:Andrew Koenig - AT&T Bell Laboratories Murray Hill, New Jersey 07094翻译:lover_P0 简介 C语言及其典型实现被设计为能被专家们容易地使用。这门语言简洁并附有表达力。但有一些限制可以保护那些浮躁的人。一个浮躁的人可以从这些条款中获得一些帮助。 在本文中,我们将会看一看这些未可知的益处。这是由于它的未可知,我原创 2004-11-17 19:36:00 · 1833 阅读 · 0 评论 -
浅谈TRACE、ASSERT宏的一种实现
下面是一个比较简单的下面是一个比较简单的TRACE和ASSERT的WIN32实现:#define ASSERT(expr) / do { / if (!(expr) && / (1 == _CrtDbgReport(_CRT_ASSERT, __FILE__, __LINE__, NULL, #expr))) / __asm { i原创 2004-12-01 21:54:00 · 2081 阅读 · 0 评论 -
在VC中做一个选择文件夹的对话框
VC中没有现成的函数来选择一个文件夹,但这是经常会用到的,怎么办?自动动手,丰衣足食!使用SHBrowseForFolder,代码如下:#include int SelFolder(HWND hParent, CString &strFolder){ strFolder.Empty(); LPMALLOC lpMalloc; if (::SHGetMalloc(&lpMa原创 2004-12-25 14:36:00 · 2745 阅读 · 3 评论 -
Big-endian和Little-endian
简而言之:Big endian machine: It thinks the first byte it reads is the biggest.Little endian machine: It thinks the first byte it reads is the littlest.举个例子,从内存地址0x0000开始有以下数据 0x0000 0x12 0x0001 0x原创 2005-01-17 12:28:00 · 3024 阅读 · 0 评论 -
系统的学习Linux
作者:GuCuiwen email:win2linux@163.com 首先,我想引用一下别人说过的一句话:除非在过去的十年你一直生活在山洞里,否则你一定听说过linux. 是的,现在听说过linux,会一点linux基本操作的人多如牛毛,然而真正能用linux做一点事情的确少之又少,这就造成了现在的状况:各大linux论坛十分热闹,但我国linux人材却还十分紧缺.到转载 2005-02-25 16:26:00 · 2420 阅读 · 4 评论 -
C语言变量总结
全局变量声明和定义的区别全局变量的声明(declare),表示其属性,主要指类型;在A文件引用B文件定义的全部变量,则要在A文件中用extern关键字来声明该变量,而不是再定义一个全局变量的定义(definition),还会导致为该变量分配存储空间 static用法若是修饰全局变量,则表示该变量的作用域是定义处到文件结束若是修饰局部变量,则表示该变量是静态的,生存期为整个程序的生存期,其存储空间在原创 2005-11-29 10:40:00 · 2513 阅读 · 0 评论 -
支持插入删除操作的bitset
开发中需要支持插入删除操作的位图结构,开始选用std::bitset,但是发现效率非常低。于是赶紧找找,看看有没有别的可用。查资料发现,bit_vector曾经有,现在基本不支持了;按照《Effective STL》的说法,vector是不推荐使用的,第一,它不是一个真正STL容器,第二,它并不保存bool类型。一个替代是deque,它是一个STL容器,它保存真正的bool值,当然,deque底层原创 2008-06-24 10:26:00 · 1277 阅读 · 0 评论