¿É±ä²ÎÊýµÄ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)&~
Ïà¹ØÎĵµ£º
Linux C¡¡¡¡alarmº¯Êý---Çë¿´×îºó
¡¡¡¡alarmÒ²³ÆΪÄÖÖÓº¯Êý£¬Ëü¿ÉÒÔÔÙ½ø³ÌÖÐÉèÖÃÒ»¸ö¶¨Ê±Æ÷£¬µ±¶¨Ê±Æ÷Ö¸¶¨µÄʱ¼äµ½Ê±£¬ËüÏò½ø³Ç·¢ËÍSIGALARMÐźš£Òª×¢ÒâµÄÊÇ£¬Ò»¸ö½ø³ÌÖ»ÄÜÓÐÒ»¸öÄÖÖÓʱ¼ä£¬Èç¹ûÔÚµ÷ÓÃalarm֮ǰÒÑÉèÖùýÄÖÖÓʱ¼ä£¬ÔòÈκÎÒÔÇ°µÄÄÖÖÓʱ¼ä¶¼±»ÐÂÖµËù´úÌæ¡£
ËùÐèÍ·Îļþ
¡¡¡¡#include<unistd.h>
º¯Ê ......
pFn¡¡t1(void);
pFn¡¡t2(void);
int main()
{
¡¡¡¡pFn fn = t1 ;
¡¡¡¡while(1){
¡¡¡¡¡¡¡¡fn = fn();¡¡¡¡//Õâ¸ö£¬´ó¼Ò¿´Çå³þÁË
¡¡¡¡}
}
pFn¡¡t1()
{
¡¡¡¡printf("t1\n");
¡¡¡¡return t2 ;
}
pFn¡¡t2()
{
¡¡¡¡printf("t2\n");
¡¡¡¡return t1 ;
}
ÇëÎÊ£¬Ïëͨ¹ý±àÒ룬pFnº¯ÊýÖ¸ÕëÀàÐÍ ......
1.ʹÓÃCÓïÑÔÀ´²Ù×÷SQL SERVERÊý¾Ý¿â,²ÉÓÃODBC¿ª·ÅʽÊý¾Ý¿âÁ¬½Ó½øÐÐÊý¾ÝµÄÌí¼Ó,ÐÞ¸Ä,ɾ³ý,²éѯµÈ²Ù×÷¡£
step1:Æô¶¯SQLSERVER·þÎñ,ÀýÈç:HNHJ,¿ªÊ¼²Ëµ¥ ->ÔËÐÐ ->net start mssqlserver
step2:´ò¿ªÆóÒµ¹ÜÀíÆ÷,½¨Á¢Êý¾Ý¿âtest,ÔÚtest¿âÖн¨Á¢test±í(a varchar(200),b varchar(200))
step3:½¨Á¢ÏµÍ³DSN,¿ªÊ¼²Ëµ ......
Cϵͳº¯Êý¿âЩÐí
--------------------------------------------------------------------------------
ÔÐÍ£ºextern void clrscr(void);
&nbs ......
ÄÚÈÝÕªÒª£º±¾ÎÄÏêϸϵͳµØ½éÉÜÁËuC/OS-IIÔÚ51µ¥Æ¬»úÉϵÄÒÆÖ²¡¢ÖØÈëʵÏÖ·½·¨¡¢Ó²¼þ·ÂÕæ¡¢¹Ì»¯¡¢ÈË»ú½çÃæµÈ¹Ø¼üÄÚÈÝ¡£
¹Ø¼ü´Ê£ºÇ¶Èëʽʵʱ¶àÈÎÎñ²Ù×÷ϵͳ¡¢uC/OS-II¡¢C51
ÒýÑÔ£º
Ëæן÷ÖÖÓ¦Óõç×ÓϵͳµÄ¸´ÔÓ»¯ºÍϵͳʵʱÐÔÐèÇóµÄÌá¸ß£¬²¢°éËæÓ¦ÓÃÈí¼þ³¯×Åϵͳ»¯·½Ïò·¢Õ¹µÄ¼ÓËÙ£¬ÔÚ16λ/32λµ¥Æ¬»úÖÐ¹ã·ºÊ¹Ó ......