易截截图软件、单文件、免安装、纯绿色、仅160KB

c/c++语言问题中可变参数


 va_list是c/c++语言问题中解决可变参数的一组宏.先来看一个程序例子吧.
view plaincopy to clipboardprint?
#include <stdarg.h>   
/** 函数名:max  
  * 功能:返回n个整数中的最大值  
  *  参数:num:整数的个数 ...:num个输入的整数  
  *  返回值:求得的最大整数  
  */   
int max ( int num, ... )   
{   
 int m = -0x7FFFFFFF; /* 32系统中最小的整数 */   
 va_list ap;   
 va_start ( ap, num );   
 for ( int i= 0; i< num; i++ )   
 {   
  int t = va_arg (ap, int);   
  if ( t > m )   
  {   
   m = t;   
  }   
 }   
 va_end (ap);   
 return m;   
}   
/* 主函数调用max */   
int main ( int argc, char* argv[] )   
{   
 int n = max ( 5, 5, 6 ,3 ,8 ,5); /* 求5个整数中的最大值 */   
 cout << n;   
 return 0;   
}   
  C语言中有些函数使用可变参数,比如常见的int printf( const char* format, ...),第一个参数format是固定的,其余的参数的个数和类型都不固定. 
  C语言用va_start等宏来处理这些可变参数。这些宏看起来很复杂,其实原理挺简单,就是根据参数入栈的特点从最靠近第一个可变参数的固定参数开始,依次获取每个可变参数的地址。下面我们来分析这些宏。 
在stdarg.h头文件中,针对不同平台有不同的宏定义,我们选


相关文档:

C/C++编程GUI库比较

最强的GUI库当属Qt,毕竟是商业化的东西,功能最完整,什么都好,包括类似java代码风格,良好的框架设计,但有几点值的一提:
     1.它没有使用STL,而是自己实现了一套替代方案QTL;
     2.事件模型使用自创的signal/slot机制,所以需要moc.exe来预处理头文件;
  &nbs ......

linux c and asm 同时使用

from: 《自己动手写操作系统》
1. 中断向量表 查看 linux/init/main.c in http://lxr.linux.no/#linux+v2.6.32/init/main.c
2.
; [root@XXX XXX]# nasm -f elf foo.asm -o foo.o
; [root@XXX XXX]# gcc -c bar.c -o bar.o
; [root@XXX XXX]# ld -s foo.o bar.o -o foobar
; [root@XXX XXX]# ./foobar
; the 2nd on ......

C/C++也可以写的很安全!

今天看到一种比较安全的枚举写法!
enum example
{
item1 = 0,
item2,
item3,
item4,
item5,
max      /* when you want to add element,please add before this */
};
        当你使用它的时候:
example ex1;
        i ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号