[C/C++] °ÑÒ»¸öÕûÐÍÕûÊýת³É×Ö·û´®
ÎÊÌâÃèÊö£ºÐ´Ò»¸öº¯Êý£¬½ÓÊÜÒ»¸öÕûÊý£¨¼Ù¶¨ÓÃint±íʾ£©£¬Êä³ö¸ÃÕûÊýµÄ×Ö·û´®ÐÎʽ¡£²ÉÓÃÈçϺ¯ÊýÔÐÍ£º
void itoa ( int val, char* buf );
ÕâÀï¼Ù¶¨buf×ã¹»´óÒÔÈÝÄÉÈκÎintÀàÐÍÊýÖµµÄ×Ö·û´®¡£
Õâ¸öÎÊÌ⣬³õ¿´ºÃÏñûÓÐʲôÄѶȡ£Èç¹ûÊÇ0£¬¾ÍÖ±½ÓÊä³ö'0'£»Èç¹ûÊÇÕýÊý£¬¾Íͨ¹ýȡģ(%)ºÍÇóÉÌ(/)ÔËËã¿ÉÒÔÖðλȡµÃ¸ÃÕûÊýµÄÊý×Ö£¬²¢°ÑËüÃǷŵ½bufÖÐÈ¥£»Èç¹ûÊǸö¸ºÊý£¬¾ÍÏÈת³ÉÕýµÄ£¬È»ºóÔÚ×îºóÊä³öʱ¼ÓÈ븺ºÅ¡£°´ÕÕÕâ¸ö˼·£¬¿ÉÒÔдÏÂÈçÏ´úÂ룺
void itoa_flawed(int val, char* buf)
{
// deal with special case
if(val == 0)
{
buf[0] = '0';
buf[1] = '\0';
return;
}
bool negative = (val < 0);
int abs_val = negative ? -val : val;
unsigned int char_cnt = 0;
while(abs_val > 0)
{
buf[char_cnt] = abs_val % 10 + '0';
char_cnt ++;
abs_val = abs_val / 10;
}
if(negative) buf[char_cnt++] = '-';
//reverse the string
unsigned int i = 0;
while(i < char_cnt / 2)
{
char temp = buf[i];
buf[i] = buf[char_cnt-i-1];
buf[char_cnt-i-1] = temp;
i++;
}
buf[char_cnt] = '\0';
}
Ò»Çп´ÆðÀ´¶¼Ã»ÓÐÎÊÌâ¡£µ«ÊÇ£¬Èç¹ûÎÒÃÇÕâÑùµ÷Óøú¯ÊýµÄ»°£¬²Â²Â»áÊä³öʲô£º
char buf[40];
itoa_flawed(1 << 31,buf);
cout<<buf;
ÎÒÃǵõ½µÄÊÇ"-"¡£ÕâÊÇÎªÊ²Ã´ÄØ£¿´ó¼ÒÇë×¢ÒâµÚ11ÐдúÂë¡£µ±ÎÒÃÇÇóÒ»¸ºÊýµÄ¾ø¶Ôֵʱ£¬Èç¹û»¹ÊÇÓÃÔÀ´´óСµÄÓзûºÅÀàÐÍʱ£¬¿ÉÄÜ»á²úÉúÒç³ö£¡ÎÒÃÇÖªµÀ£¬intÀàÐÍÖ»Äܱíʾ-231
~ 231
-1
Ö®¼äµÄÊýÖµ¡£Èç¹ûÎÒÃǶÔ-231
Çó¾ø¶ÔÖµ²¢°ÑËü´æ·Åµ½intÀàÐ͵ıäÁ¿ÖУ¬»á·¢ÉúʲôÇé¿ö£¿·ÖÎöµ½ÕâÀ´ó¼Ò¶¼Ó¦¸ÃÇå³þÁ˰ɣ¡
Õâ¸öbugÊǺÜÒþ±ÎµÄ¡£ÎÒÔÚÍøÉÏ¿´µ½µÄ´úÂë»ù±¾É϶¼ºÍÉÏÃæ¸ø³öµÄ²î²»¶à£¬Ã»Óп¼ÂÇÕâ¸ö¿ÉÄܵÄÒç³öÎÊÌâ¡£ÐÞÕýµÄ°ì·¨£¬¾ÍÊÇÓøü´óµÄÀàÐÍÀ´´æ·Å¾ø¶ÔÖµ¡£¹Û²ìµ½¾ø¶ÔÖµÊǷǸºµÄ£¬ÎÒÃÇ¿ÉÒÔÓÃÒ»¸öunsigned int
À´±íʾ¾ø¶ÔÖµ£¬ÕâÑù¾Í²»»áÓÐÎÊÌâÁË¡£
Õâ¸öÌâÄ¿¸øÎ񵀮ôʾÊÇ£¬ËäÈ»¿´ÆðÀ´¼òµ¥µÄÌâÄ¿£¬Ò²¿ÉÄÜÓкܴóµÄÏÝÚå¡£Èç¹ûÕâÊÇÒ»µÀÃæÊÔÌâµÄ»°£¬¹À¼ÆÍêÈ«×ö¶ÔµÄ²»¶à£¬¿ÉÄÜÒ²°üÀ¨ÏÖ³¡µÄÎÒÔÚÄÚ¡£
Ïà¹ØÎĵµ£º
setitimer()ΪLinuxµÄAPI£¬²¢·ÇCÓïÑÔµÄStandard Library£¬setitimer()ÓÐÁ½¸ö¹¦ÄÜ£¬Ò»ÊÇÖ¸¶¨Ò»¶Îʱ¼äºó£¬²ÅÖ´ÐÐij¸öfunction£¬¶þÊÇÿ¼ä¸ñÒ»¶Îʱ¼ä¾ÍÖ´ÐÐij¸öfunction£¬ÒÔϳÌÐòdemoÈçºÎʹÓÃsetitimer()¡£
/*
......
C/C++ÖÐStaticµÄ×÷ÓÃÏêÊö
http://developer.51cto.com 2008-12-29 09:52 ØýÃû ÖйúITʵÑéÊÒ ÎÒÒªÆÀÂÛ(0)
CÓïÑÔÖУ¬staticµÄ×ÖÃæÒâ˼ºÜÈÝÒ×°ÑÎÒÃǵ¼ÈëÆç;¡£±¾ÎĽ«¶ÔC/C++ÖÐStatic½øÐÐÏêÊö¡£
1.ÏÈÀ´½éÉÜËüµÄµÚÒ»ÌõÒ²ÊÇ×îÖØÒªµÄÒ»Ìõ£ºÒþ²Ø¡£
µ±ÎÒÃÇͬʱ±àÒë¶à¸öÎļþʱ£¬ËùÓÐδ¼Óstaticǰ׺µÄÈ ......
SelectÔÚSocket±à³ÌÖл¹ÊDZȽÏÖØÒªµÄ£¬¿ÉÊǶÔÓÚ³õѧSocketµÄÈËÀ´Ëµ¶¼²»Ì«°®ÓÃSelectд³ÌÐò£¬ËûÃÇÖ»ÊÇϰ¹ßдÖîÈç connect¡¢accept¡¢recv»òrecvfromÕâÑùµÄ×èÈû³ÌÐò£¨Ëùν×èÈû·½Ê½block£¬¹ËÃû˼Ò壬¾ÍÊǽø³Ì»òÊÇÏß³ÌÖ´Ðе½ÕâЩº¯Êýʱ±ØÐëµÈ
´ýij¸öʼþµÄ·¢Éú£¬Èç¹ûʼþûÓз¢Éú£¬½ø³Ì»òÏ߳̾ͱ»×èÈû£¬º¯Êý²»ÄÜÁ¢¼´·µ» ......
×î½üÒªÓõ½Ïà¹Ø¼¼Êõ£¬ÏÈÌùÔÚÕ⣬ÓпÕÔÙ·Ò³¡£
±¾ÎÄת×Ô£º
http://www.codeguru.com/Cpp/I-N/ieprogram/article.php/c4399
http://www.codeguru.com/cpp/i-n/ieprogram/article.php/c4399/JavaScript-Calls-from-C.htm
http://www.codeproject.com/KB/COM/jscalls.aspx
Introduction
Sometimes, when we are usi ......