C¿âº¯Êý×Ö·û´®´¦Àíº¯ÊýµÄCʵÏÖ(³£¼û)
1.strlen()
ʵÏÖ£º
size_t strlen(const char *s)
{
size_t n;
for(n = 0; *s != '\0'; s++)
++n;
return n;
}
2.strcpy()
ʵÏÖ;
char *strcpy(char *s1, register const char *s2)
{
register const char *p = s1;
while(*p++ = *s2++)
;
return s1;
}
·ÖÎö;
Õâ¸öwhileÑ»·ÊǸö¿ÕÑ»·£¬ËùÓе͝×÷¶¼ÊÇ×÷ΪwhileÑ»·µÄ¿ØÖƱí´ïʽµÄ¸±×÷ÓÃÍê³ÉµÄ¡£
while(*p++ = *s2++)£¬pËùÖ¸ÏòµÄ×Ö·û±»¸³ÖµÎªs2ËùÖ¸ÏòµÄ×Ö·û£¬È»ºópºÍs2¶¼½øÐÐÔöÖµ£¬Ö¸ÏòÏÂÒ»¸ö×Ö·û£¬ÖªµÀs2Ö¸ÏòµÄ×Ö·ûÊÇ'\0'£¨ÆäֵΪ0£©¡£µ±Õâ¸ö0¸³¸øpËùÖ¸ÏòµÄ×Ö·ûʱ£¬Ï൱ÓÚÉèÖÃÁË×Ö·û´®½áÊø±êÖ¾£¬²¢ÇÒÕû¸ö±í´ïʽµÄֵΪ0£¬Í˳öÑ»·¡£
ËùÓвÙ×÷µÄЧ¹ûÊǰÑ×Ö·û´®s2¸´ÖƸøs1¡£
3.strcat()
ʵÏÖ£º
char *strcat(char *s1, register const char *s2)
{
register char *p =s1;
while(*p)
++p;
while(*p++ = *s2++)
;
return s1;
}
·ÖÎö;
ʹÓÃregister´æ´¢ÀàÐÍÊÇΪÁË»ñµÃ×î¿ìµÄÖ´ÐÐËÙ¶È¡£
Ïà¹ØÎĵµ£º
ÏÖÔڵĹ«Ë¾ÕÐÆ¸,¶¼Òª±ÊÊÔÃæÊÔ.Èç¹ûÄã²»ÊÇÄÇÖÖ±à³Ì¹¦µ×·Ç³£ÉîºñµÄÈË,ÓÖ²»ºÃºÃ×¼±¸Ò»·¬,ÔÚ±ÊÊÔÃæÊÔÖÐÍùÍù»á´¦ÓÚ±»¶¯¾ÖÃæ.ËäÈ»ÓÐЩ±ÊÊÔÌâÊǹÊÒâΪÄÑÎÒÃÇ£¬Óеã×êÅ£½Ç¼â.µ«ÊǺܶà±ÊÊÔÌâÃæÊÔÌâȷʵÄܹ»ºÜºÃµØ¿´³öÎÒÃǵĻù´¡. ÔÚÕâÀï,ÎÒ¾ÍÂÔÈ¥ÄÇЩ×êÅ£½Ç¼âµÄÌâ.´ÓcsdnÂÛ̳ÎÒ½ü°ëÄêµÄÊÕ¼¯ÖÐÑ¡³ö10µÀÓдú±íÐÔµÄÌâÄ¿,ÄѶȻù±¾ÉÏÊÇÖ ......
Ò»¡¢»ù±¾ÖªÊ¶
Ö¸ÕëºÍÒýÓõÄÉùÃ÷·½Ê½£º
ÉùÃ÷Ö¸Õ룺char* pc;
ÉùÃ÷ÒýÓãºchar& rc = 0;
ËüÃǵÄÇø±ð£º
¢Ù´ÓÏÖÏóÉÏ¿´£¬Ö¸ÕëÔÚÔËÐÐʱ¿ÉÒԸıäÆäËùÖ¸ÏòµÄÖµ£¬¶øÒýÓÃÒ»µ©ºÍij¸ö¶ÔÏó°ó¶¨ºó¾Í²»Ôٸı䡣Õâ¾ä»°¿ÉÒÔÀí½âΪ£ºÖ¸Õë¿ÉÒÔ±»ÖØÐ¸³ÖµÒÔÖ¸ÏòÁíÒ»¸ö²»Í¬µÄ¶ÔÏó¡£µ«ÊÇÒýÓÃÔò×ÜÊÇÖ¸ÏòÔÚ³õʼ»¯Ê±±»Ö¸¶¨µÄ¶Ô ......
ÕâÆªÈÕÖ¾»¹ÊÇÏÈ´ÓÒ»¸öÄܹ»ÔËÐÐÆðÀ´µÄÀý×Ó³ö·¢£¬Ò»µ©ÄÜ˳ÀûµÄ¿´µ½³ÌÐòµÄ³É¹¦ÔËÐУ¬ÄÇô½ÓÏÂÀ´µÄʼþÎÒÏëÓ¦¸ÃÊÇÎÊΪʲôÁË£¿ËƺõÕâÑù¸ü¼ÓÈÝÒ×Àí½âºÍÕÆÎÕ¡£
¶ÔÓÚsocket³ÌÐòµÄ¸ÅÄîÕâÀï¾Í²»¶àдÁË£¬µ«ÎÒÏàÐÅ£¬Èç¹ûÄÜ¿´ÍêÕâÕûƪÎÄÕ£¬ÎÒÏàÐŲ»»áÔÙÓÐÕâÑùµÄÒÉÎʵġ£
ÏÂÃæ½«±àдһ¸öc/s½á¹¹µÄ³ÌÐò£¬Ö÷Òª¹¦ÄÜÊÇclient½«Ïòserver·¢Ë ......
In C programming language, the observer design pattern is implemented with function pointer (aka callback function). But in Qt library, it introduces signal and slot. How to link a callback function from the C callback function to the C++ siganl and slot is a problem I encounter. Call back function ......