易截截图软件、单文件、免安装、纯绿色、仅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写的3D迷宫

          Boss说,要看OpenGL,看了快一个月,总算出了个像样的东西,用C写了个3D迷宫,
虽然只有350行
       代码,不过边学边写,足足写了一周时间,还是小有成就感的,活活活!
         &n ......

Perl文件测试符 C的用法

在Perl的各种文件测试运算符中,最有用的运算符之一就是 -C 了。
它返回的是文件的ctime到程序启动的那一时刻经过的天数。
如果不是整数天,返回值就带有小数。
这个运算符经常用来检测文件是否过期,比如判断文件距离上次修改是否超过了3天,
如果超过就将其删除。但是,你是否真正理解 -C 的工作原理呢?
何谓ctime ......

关于《0 bug C/C++商用工程之道》的一处bug

这两天有很多朋友已经买了书了,并且开始看,呵呵,我心里也很高兴。
嗯,要说江湖上藏龙卧虎呢,这不,这才几天时间,已经有朋友指出我书中的一处明显错误,这里我正式给大家说明一下,免得对各位读者有个不好的误导。
问题出在第26页的一个图以及其相关文字。这是第二章基础知识的第一节,其实就是关于内存的讲解,大家 ......

C/C++ 文件读写操作总结(2)

五、文件定位
  和C的文件操作方式不同的是,C++ I/O系统管理两个与一个文件相联系的指针。一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。所以,C++的文件定位分为读位置和写位置的定位,对应的成员函数是 seekg()和 seekp(),seekg()是 ......

程序员之路──如何学习C语言并精通C语


转载自: http://bbs.chinaitlab.com/thread-304041-1-1.html
学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。
一、要读 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号