#ÔÚCÖеÄÃîÓÃÄãÖªµÀ¶àÉÙ
CÖеÄ#ºÅ²»½öÊÇ#include£¬#defineµÈµÄ¹Ø¼ü×ÖÊ×ʹÓöøÒÑ£¬#ÔÚºêÖл¹ÓкܶàÓ÷¨¡£¾ßÌåÇë¿´ÏÂÃæÎÒÀ´¾ÙÀý
1.Ë«#ºÅµÄºêÓ÷¨¡£
ÎÒÏàÐÅË«##ºÅµÄÓ÷¨Ó¦¸Ã´ó²¿·ÖÈ˶¼¼û¹ý°É£¬Ö÷ÒªÊÇÓÃÀ´Á¬½Óºê±äÁ¿ÃûʹÓã¬ÔÚGCC²Î¿¼ÊÖ²áÖÐÕâÑù¼ÇÔØ¡£
¿ÉÓÃÓÚºêÄÚ²¿½«Á½¸öÔ´´úÂëȨ±êÁ¬½Ó³ÉÒ»¸öµÄÁ¬½Óָʾ×Ö£¬¿ÉÓÃÀ´¹¹Ôì²»»á±»½âÎöÆ÷´íÎó½âÊ͵ÄÃû×Ö¡£ÀýÈ磬ÏÂÃæÁ½¸öºê»áʵÏÖÁ¬½Ó²Ù×÷£º
#define PASTE1(a) a##house
#define PASTE2(a,b) a##b
result = PASTE1(farm);
result = PASTE1(ranch);
result = PASTE2(front,back);
ÏÂÃæÊÇÉÏÃæÔ¤´¦ÀíµÄ½á¹û
result = farmhouse;
result =ranchhouse;
result = frontback;
Õâ¾ÍÊÇË«##µÄÓ÷¨¡£
2.µ¥#ºÅµÄÓ÷¨¡£¶ÔÓÚµ¥#ºÅµÄÓ÷¨¡£ÎÒÓÃÒ»¸öÀý×ÓÀ´ÃèÊöÒ»ÏÂ
#define tostring(s) #s
#define STRING "Lavf" tostring(52 ##.## 36 ##.## 0)
int main()
{
char *p = STRING;
printf("%s", p);
getchar();
return 0;
}
ÉÏÃæµÄ½á¹ûÊÇ
Lavf52.36.0
´ËÎÄÕ½ö×÷²Î¿¼£¬ÈôÎÒµÄÀí½âÓиüУ¬ÎÒ»á¸ü¸Ä¶Ô±¾ÎÄÕ½øÐÐÐ޸쬲¢ÇÒÏ£ÍûÖªµÀ#ºÅÓ÷¨µÄÅóÓÑÄܸøÓèÎÒ±¦¹óµÄ½¨Ò顣лл´ó¼Ò¿´ÎÒµÄÎÄÕÂ
Ïà¹ØÎĵµ£º
×î½üʵÔÚÊÇ̫æÁË£¬ÕâÆªÕûÕû¾ÍÍÆ³ÙÁË1¸öÔÂÁË£¬ÊµÔÚÊǶԲ»Æð¡£Ö®Ç°±¾´òËãÕâ¸öÄ£¿é¾Í½áÊøÁË£¬Îļþ²Ù×÷¾Í²»Ð´ÁË£¬µ«ÊÇÎļþ²Ù×÷ÓÖÊÇÒ»¸öºÜÖØÒªµÄ¶«Î÷£¬¶øÇÒÒ²¸ÕºÃÄܹ»×ܽá֮ǰÎÒÃÇѧϰµÄËùÓÐ֪ʶ¡£Í¬Ê±Ò²ÎªÁ˽«Îļþ²Ù×÷Õâ¸ö³õѧÕßÈÏΪºÜÉñÃØµÄ¶«Î÷¸ø±¾ÖÊ»¯¡£Òò´Ë£¬±¾Æª½«ÖðÒ»½éÉÜCÓïÑÔµÄÎļþ²Ù×÷¡££¨±¾Ä£¿éµÄÃüÃû±¾À´ÊÇÏëC\C++Ò ......
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º¯ÊýÖ¸ÕëÀàÐÍ ......
(Ò»)дһ¸ö¼òµ¥µÄ¿É±ä²ÎÊýµÄ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(¿É±ä²ÎÊý)µÄÒâ˼.
ÕâÐ ......