Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¿É±ä²ÎÊýµÄCº¯Êý

(Ò»)дһ¸ö¼òµ¥µÄ¿É±ä²ÎÊýµÄCº¯Êý
ÏÂÃæÎÒÃÇÀ´Ì½ÌÖÈçºÎдһ¸ö¼òµ¥µÄ¿É±ä²ÎÊýµÄCº¯Êý.д¿É±ä²ÎÊýµÄ
Cº¯ÊýÒªÔÚ³ÌÐòÖÐÓõ½ÒÔÏÂÕâЩºê:
void va_start( va_list arg_ptr, prev_param );
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
vaÔÚÕâÀïÊÇvariable-argument(¿É±ä²ÎÊý)µÄÒâ˼.
ÕâЩºê¶¨ÒåÔÚstdarg.hÖÐ,ËùÒÔÓõ½¿É±ä²ÎÊýµÄ³ÌÐòÓ¦¸Ã°üº¬Õâ¸ö
Í·Îļþ.ÏÂÃæÎÒÃÇдһ¸ö¼òµ¥µÄ¿É±ä²ÎÊýµÄº¯Êý,¸Äº¯ÊýÖÁÉÙÓÐÒ»¸öÕûÊý
²ÎÊý,µÚ¶þ¸ö²ÎÊýÒ²ÊÇÕûÊý,ÊÇ¿ÉÑ¡µÄ.º¯ÊýÖ»ÊÇ´òÓ¡ÕâÁ½¸ö²ÎÊýµÄÖµ.
void simple_va_fun(int i, ...)
{
va_list arg_ptr;
int j=0;
va_start(arg_ptr, i);
j=va_arg(arg_ptr, int);
va_end(arg_ptr);
printf("%d %d\n", i, j);
return;
}
ÎÒÃÇ¿ÉÒÔÔÚÎÒÃǵÄÍ·ÎļþÖÐÕâÑùÉùÃ÷ÎÒÃǵĺ¯Êý:
extern void simple_va_fun(int i, ...);
ÎÒÃÇÔÚ³ÌÐòÖпÉÒÔÕâÑùµ÷ÓÃ:
simple_va_fun(100);
simple_va_fun(100,200);
´ÓÕâ¸öº¯ÊýµÄʵÏÖ¿ÉÒÔ¿´µ½,ÎÒÃÇʹÓÿɱä²ÎÊýÓ¦¸ÃÓÐÒÔϲ½Öè:
1)Ê×ÏÈÔÚº¯ÊýÀﶨÒåÒ»¸öva_listÐ͵ıäÁ¿,ÕâÀïÊÇarg_ptr,Õâ¸ö±ä
Á¿ÊÇÖ¸Ïò²ÎÊýµÄÖ¸Õë.
2)È»ºóÓÃva_startºê³õʼ»¯±äÁ¿arg_ptr,Õâ¸öºêµÄµÚ¶þ¸ö²ÎÊýÊǵÚ
Ò»¸ö¿É±ä²ÎÊýµÄǰһ¸ö²ÎÊý,ÊÇÒ»¸ö¹Ì¶¨µÄ²ÎÊý.
3)È»ºóÓÃva_arg·µ»Ø¿É±äµÄ²ÎÊý,²¢¸³Öµ¸øÕûÊýj. va_argµÄµÚ¶þ¸ö
²ÎÊýÊÇÄãÒª·µ»ØµÄ²ÎÊýµÄÀàÐÍ,ÕâÀïÊÇintÐÍ.
4)×îºóÓÃva_endºê½áÊø¿É±ä²ÎÊýµÄ»ñÈ¡.È»ºóÄã¾Í¿ÉÒÔÔÚº¯ÊýÀïʹ
Óõڶþ¸ö²ÎÊýÁË.Èç¹ûº¯ÊýÓжà¸ö¿É±ä²ÎÊýµÄ,ÒÀ´Îµ÷ÓÃva_arg»ñ
È¡¸÷¸ö²ÎÊý.
Èç¹ûÎÒÃÇÓÃÏÂÃæÈýÖÖ·½·¨µ÷Óõϰ,¶¼ÊǺϷ¨µÄ,µ«½á¹ûÈ´²»Ò»Ñù:
1)simple_va_fun(100);
½á¹ûÊÇ:100 -123456789(»á±äµÄÖµ)
2)simple_va_fun(100,200);
½á¹ûÊÇ:100 200
3)simple_va_fun(100,200,300);
½á¹ûÊÇ:100 200
ÎÒÃÇ¿´µ½µÚÒ»ÖÖµ÷ÓÃÓдíÎó,µÚ¶þÖÖµ÷ÓÃÕýÈ·,µÚÈýÖÖµ÷Óþ¡¹Ü½á¹û
ÕýÈ·,µ«ºÍÎÒÃǺ¯Êý×î³õµÄÉè¼ÆÓгåÍ».ÏÂÃæÒ»½ÚÎÒÃÇ̽ÌÖ³öÏÖÕâЩ½á¹û
µÄÔ­ÒòºÍ¿É±ä²ÎÊýÔÚ±àÒëÆ÷ÖÐÊÇÈçºÎ´¦ÀíµÄ.
(¶þ)¿É±ä²ÎÊýÔÚ±àÒëÆ÷ÖеĴ¦Àí
ÎÒÃÇÖªµÀva_start,va_arg,va_endÊÇÔÚstdarg.hÖб»¶¨Òå³ÉºêµÄ,
ÓÉÓÚ1)Ó²¼þƽ̨µÄ²»Í¬ 2)±àÒëÆ÷µÄ²»Í¬,ËùÒÔ¶¨ÒåµÄºêÒ²ÓÐËù²»Í¬,ÏÂ
ÃæÒÔVC++ÖÐstdarg.hÀïx86ƽ̨µÄºê¶¨Òåժ¼ÈçÏÂ('\'ºÅ±íʾÕÛÐÐ):
typedef char * va_list;
#define _INTSIZEOF(n) \
((sizeof(n)+sizeof(int)-1)&~


Ïà¹ØÎĵµ£º

Cº¯Êýµ÷ÓÃÔ¼¶¨

CÖвÉÓÃÁ˲»Í¬µÄµ÷Ó÷½Ê½À´µ÷Óú¯Êý£¬ÕâÀïµÄº¯Êýµ÷ÓøÅÄî¿ÉÄÜÓëÎÒÃÇͨ³£ËùÀí½âµÄº¯Êýµ÷ÓÃÓÐËù²»Í¬£¬ËüÃÇÖ¸µÄÊÇ´¦ÀíÆ÷ÔÚ´¦Àíº¯ÊýÉϵIJîÒì¡£Àí½âÕâЩ²»Í¬µÄ·½Ê½ÓÐÖúÓÚÎÒÃÇÀ´µ÷ÊÔ³ÌÐòºÍÁ´½ÓÎÒÃǵĴúÂë¡£ÔÚ´ËÎÒÏëÌÖÂÛÒ»ÏÂÖ÷ÒªµÄËÄÖÖº¯Êýµ÷Ó÷½·¨ÒÔ¼°Ö®¼äµÄÇø±ð£¬ËüÃÇÊÇ__stdcall¡¢__cdecl¡¢__fastcall¡¢thiscall¡£µ±È»£¬»¹ÓÐһР......

linux c alarm(0)µÄº¬Òå

Linux C¡¡¡¡alarmº¯Êý---Çë¿´×îºó
¡¡¡¡alarmÒ²³ÆÎªÄÖÖÓº¯Êý£¬Ëü¿ÉÒÔÔÙ½ø³ÌÖÐÉèÖÃÒ»¸ö¶¨Ê±Æ÷£¬µ±¶¨Ê±Æ÷Ö¸¶¨µÄʱ¼äµ½Ê±£¬ËüÏò½ø³Ç·¢ËÍSIGALARMÐźš£Òª×¢ÒâµÄÊÇ£¬Ò»¸ö½ø³ÌÖ»ÄÜÓÐÒ»¸öÄÖÖÓʱ¼ä£¬Èç¹ûÔÚµ÷ÓÃalarm֮ǰÒÑÉèÖùýÄÖÖÓʱ¼ä£¬ÔòÈκÎÒÔǰµÄÄÖÖÓʱ¼ä¶¼±»ÐÂÖµËù´úÌæ¡£
ËùÐèÍ·Îļþ
¡¡¡¡#include<unistd.h>
º¯Ê ......

50¸öc/c++Ô´´úÂëÍøÕ¾(×ªÔØ£©

source: http://blog.renren.com/blog/229071289/443686923
C/C++ÊÇ×îÖ÷ÒªµÄ±à³ÌÓïÑÔ¡£ÕâÀïÁгöÁË50ÃûÓÅÐãÍøÕ¾ºÍÍøÒ³Çåµ¥£¬ÕâÐ©ÍøÕ¾Ìṩc/c++Ô´´úÂë¡£Õâ·ÝÇåµ¥ÌṩÁËÔ´´úÂëµÄÁ´½ÓÒÔ¼°ËüÃǵÄС˵Ã÷¡£ÎÒÒѾ¡Á¦°üÀ¨×î¼ÑµÄC/C++Ô´´úÂëµÄÍøÕ¾¡£Õâ²»ÊÇÒ»¸öÍêÕûµÄÇåµ¥£¬ÄúÓн¨Òé¿ÉÒÔÁªÏµÎÒ£¬ÎÒ½«»¶Ó­ÄúµÄ½¨Ò飬ÒÔ½øÒ»²½¼ÓÇ¿Õâ·½Ãæ ......

SQLite3µÄC±à³Ì

/*=================================
.*  The Standard include file.
.*
.*===============================*/
#include <stdio.h>
#include <stdlib.h>
/*=================================
.*
.*  The extend include file.
.*
.*===============================*/
#include "sqlit ......

¸ÅÄî£ºÎ±Ëæ»úÊý¡¢ÖÖ×ÓÒÔ¼°CÖеÄËæ»úº¯Êý


¸ÅÄî£ºÎ±Ëæ»úÊý¡¢ÖÖ×ÓÒÔ¼°CÖеÄËæ»úº¯Êý
2007Äê12ÔÂ03ÈÕ ÏÂÎç 02:28
Ê×ÏÈÐèÒªÉùÃ÷µÄÊÇ£¬¼ÆËã»ú²»»á²úÉú¾ø¶ÔËæ»úµÄËæ»úÊý£¬¼ÆËã»úÖ»ÄܲúÉú“Î±Ëæ»úÊý”¡£Æäʵ¾ø¶ÔËæ»úµÄËæ»úÊýÖ»ÊÇÒ»ÖÖÀíÏëµÄËæ»úÊý£¬¼´Ê¹¼ÆËã»úÔõÑù·¢Õ¹£¬ËüÒ²²»»á²úÉúÒ»´®¾ø¶ÔËæ»úµÄËæ»úÊý¡£¼ÆËã»úÖ»ÄÜÉú³ÉÏà¶ÔµÄËæ»úÊý£¬¼´Î±Ëæ»úÊý¡£ 
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ