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_list:ÓÃÀ´±£´æºêva_start¡¢va_argºÍva_endËùÐèÐÅÏ¢µÄÒ»ÖÖÀàÐÍ¡£ÎªÁË·ÃÎʱ䳤²ÎÊýÁбíÖеIJÎÊý£¬±ØÐëÉùÃ÷
va_listÀàÐ͵ÄÒ»¸ö¶ÔÏó ¶¨Ò壺 typedef char * va_list;
va_start:·ÃÎʱ䳤²ÎÊýÁбíÖеIJÎÊý֮ǰʹÓõĺ꣬Ëü³õʼ»¯ÓÃva_listÉùÃ÷µÄ¶ÔÏ󣬳õʼ»¯½á¹û¹©ºêva_argºÍ
va_endʹÓã»
va_arg: Õ¹¿ª³ÉÒ»¸ö±í´ïʽµÄºê£¬¸Ã±í´ïʽ¾ßÓб䳤²ÎÊýÁбíÖÐÏÂÒ»¸ö²ÎÊýµÄÖµºÍÀàÐÍ¡£Ã¿´Îµ÷ÓÃva_arg¶¼»áÐÞ¸Ä
ÓÃva_listÉùÃ÷µÄ¶ÔÏ󣬴Ӷøʹ¸Ã¶ÔÏóÖ¸Ïò²ÎÊýÁбíÖеÄÏÂÒ»¸ö²ÎÊý£»
va_end:¸Ãºêʹ³ÌÐòÄܹ»´Ó±ä³¤²ÎÊýÁбíÓúêva_startÒýÓõĺ¯ÊýÖÐÕý³£·µ»Ø¡£
vaÔÚÕâÀïÊÇvariable-argument(¿É±ä²ÎÊý)µÄÒâ˼.
ÕâЩºê¶¨ÒåÔÚstdarg.hÖÐ,ËùÒÔÓõ½¿É±ä²ÎÊýµÄ³ÌÐòÓ¦¸Ã°üº¬Õâ¸öÍ·Îļþ.ÏÂÃæÎÒÃÇдһ¸ö¼òµ¥µÄ¿É±ä²ÎÊýµÄº¯Êý,¸Äº¯ÊýÖÁÉÙÓÐÒ»¸öÕûÊý²ÎÊý,µÚ¶þ¸ö²ÎÊýÒ²ÊÇÕûÊý,ÊÇ¿ÉÑ¡µÄ.º¯ÊýÖ»ÊÇ´òÓ¡ÕâÁ½¸ö²ÎÊýµÄÖµ.
#include <stdio.h>;
#include <string.h>;
#include <stdarg.h>;
/* ANSI±ê×¼ÐÎʽµÄÉùÃ÷·½Ê½£¬À¨ºÅÄÚµÄÊ¡ÂԺűíʾ¿ÉÑ¡²ÎÊý */
int demo(char *msg, ... )
{
va_list argp; /* ¶¨Òå±£´æº¯Êý²ÎÊýµÄ½á¹¹ */
int argno = 0; /* ¼Í¼²ÎÊý¸öÊý */
char *para; /* ´æ·ÅÈ¡³öµÄ×Ö·û´®²ÎÊý */
/* argpÖ¸Ïò´«ÈëµÄµÚÒ»¸ö¿ÉÑ¡²ÎÊý£¬ msgÊÇ×îºóÒ»¸öÈ·¶¨µÄ²ÎÊý */
va_start( argp, msg );
while (1)
{
para = va_arg( argp, char *); /* È¡³öµ±Ç°µÄ²ÎÊý£¬ÀàÐÍΪchar *. */
if ( strcmp( para, "\0") == 0 )
/* ²ÉÓÿմ®Ö¸Ê¾²ÎÊýÊäÈë½áÊø */
break;
printf("Parameter #%d is: %s\n", argno, para);
argno++;
}
va_end( argp ); /* ½
Ïà¹ØÎĵµ£º
ÈÕÆÚ£º2009-11-21 10:54:22
±¾½ÚÖ÷Òª²Î¿¼£º
²ÜÀֵġ¶ÔÚEmacsÏÂÓÃC/C++±à³Ì¡·
Íõ´¿ÒµµÄ¡¶Emacs Ò»¸öÇ¿´óµÄƽ̨¡·
emacswiki.org
emcasÄÑѧÒ×Ó㬿ÉÀ©Õ¹ÐÔÇ¿¡£ÓÐÈË°ÑËýµ±×÷ÐÅÑö£¬ÓÐÈËÈÏΪËûÊÇħ¹í£¡Ñ§Ï°Ê×ÏȼÇס»ù±¾µÄ¼üÅÌ¿ì½Ý¼ü£¬Ñ§»á³£Óòå¼þ£¬ ......
¡¡¡¡ÉñºõÆä¼¼£¬Î©C³ÌÐò£¬¹¦µ½×Գɣ¬Ê®´ó½¨Ò飡
¡¡¡¡1¡¢ÈêӦƵ·±´ß¶¯lint¹¤¾ß£¬¾ÝÆäÓï·¨ÉùÃ÷ÐÞÏ°ÄÚÁ¦£¬´ËʽÔÒòlint֮˼ÂǾö¶ÏʵԶÔÚ¾ýÉÏ¡£
¡¡¡¡
¡¡¡¡2¡¢²»¿ÉÒÀËæNULLÖ¸Õ룬ÈçÈô²»È»£¬»ìãç³Õµß±ØÙ¹¾ýÓڱ˰¶¡£
¡¡¡¡
¡¡¡¡3¡¢×ÝÓÐÌ츳´óÖǻۣ¬ÖªÏþÆäÊÂÎÞ°£¬ÈêÒ൱¾¡ÊýÇ¿ÖÆŲÒƺ¯Êý²ÎÊýΪÔÐÍËùÆÚÖ®Êý¾ÝÀàÐÍ£¬ÒÔÃâÒ» ......
ÇëÔËÐÐÏÂÃæµÄ´úÂ룬¹Û²ì½á¹û£¬ÓÐÈË˵ÔõôÊÇËÀÑ»·£¬ÄãͬÒâÂð£¿ÎªÊ²Ã´£¿
#include
<stdio.h>
int
main()
{
int
i = 0;
int
name[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
......
Óú¯Êýaccess£¬Í·ÎļþÊÇio.h£¬ÔÐÍ£º
int access(const char *filename, int amode);
amode²ÎÊýΪ0ʱ±íʾ¼ì²éÎļþµÄ´æÔÚÐÔ£¬Èç¹ûÎļþ´æÔÚ£¬·µ»Ø0£¬²»´æÔÚ£¬·µ»Ø-1¡£
Õâ¸öº¯Êý»¹¿ÉÒÔ¼ì²éÆäËüÎļþÊôÐÔ£º
06 &nbs ......