¹ØÓÚC/C++ ±í´ïʽÇóֵ˳Ðò 䶨Òå
±í´ïʽµÄ¸±×÷ÓÃ
ÔËËã·ûµÄÓÅÏȼ¶Óë½áºÏÐԹ涨Á˱í´ïʽÖÐÏàÁÚÁ½¸öÔËËã·ûµÄÔËËã´ÎÐò£¬µ«¶ÔÓÚË«Ä¿
ÔËËãµÄ²Ù×÷Êý£¬C++ûÓй涨ËûÃǵļÆËã´ÎÐò¡£ÀýÈ磬¶ÔÓÚ±í´ïʽ£º
exp1 + exp2;
ÏȼÆËã exp1 »¹ÊÇ exp2£¿²»Í¬µÄ±àÒëÆ÷Óв»Í¬µÄ×ö·¨¡£
ÔÚÊýѧÉÏ£¬¶ÔÓÚË«Ä¿ÔËËã·û£¬²»ÂÛÏȼÆËãÄÄÒ»¸ö²Ù×÷Êý£¬ÒªÇó×îÖÕ¼ÆËã½á¹ûÒ»Ñù¡£
ÔÚ C++ÖУ¬ÔÚ¼ÆËãÒ»¸ö²Ù×÷Êýʱ£¬¸Ã¼ÆËã»á¸Ä±ä£¨Ó°Ï죩ÁíÒ»¸ö²Ù×÷Êý£¬´Ó¶øµ¼ÖÂÒò²Ù
×÷ÊýµÄ²»Í¬¼ÆËã´ÎÐò²úÉú²»Í¬µÄ×îÖÕ¼ÆËã½á¹û¡£¶ÔÓÚÒò²Ù×÷Êý¼ÆËãµÄ´ÎÐò²»Í¬²úÉú²»Í¬
½á¹ûµÄ±í´ïʽΪ´ø¸±×÷Óõıí´ïʽ¡£ÔÚ¼ÆËãʱ»áÓ°ÏìÆäËû²Ù×÷ÊýµÄÖµ£¬ÒýÆð¸±×÷ÓõÄÔË
Ëã·ûΪ´ø¸±×÷ÓõÄÔËËã·û¡£Èç++¡¢– –ÒÔ¼°¸÷ÖÖ¸³ÖµÔËËã·ûΪ´ø¸±×÷ÓõÄÔËËã·û¡£ÀýÈ磺
x=1,(x+2)*(++x)
ÏȼÆËã x+2 ±í´ïʽµÄֵΪ 6¡£
ÈôÏȼÆËã++x£¬ÓÉÓÚÐÞ¸ÄÁË x+2 ÖÐ x µÄÖµ£¬¼ÆËã½á¹ûΪ£¸¡£
ÔÚ C++Öй涨£¬ÏȼÆËãÂß¼Ó루&&£©ºÍÂß¼»ò£¨||£©µÄµÚÒ»¸ö²Ù×÷Êý£¬ÔÙ¼ÆËãµÚ¶þ
¸ö²Ù×÷Êý£¬ÒÔ±ã½øÐжÌ·ÇóÖµ¡£Ìõ¼þ£¨?:£©¡¢¶ººÅ£¨,£©ÔËËã·ûÒ²¹æ¶¨Á˲Ù×÷ÊýµÄ¼ÆËã´ÎÐò£¬
³ý´ËÒÔÍ⣬ÆäËûÔËËã·ûûÓй涨²Ù×÷ÊýµÄ¼ÆËã´ÎÐò£¬¼ÆËã´ÎÐòÓɾßÌåµÄ±àÒëÆ÷¾ö¶¨¡£Òò
´ËÔÚº¬ÕâЩÔËËã·ûµÄ±í´ïʽÖУ¬±ÜÃâÔÚ²Ù×÷ÊýÖÐÒýÈë´ø¸±×÷ÓõÄÔËËã·û¡£
±í´ïʽÇóֵ˳Ðò²»Í¬ÓÚÔËËã½áºÏÐÔºÍÓÅÏȼ¶¡£ÏÂÃæÊÇÒ»¸ö¾µäÀý×Ó£¬±» ISO C99/ C++98 /03 Èý´ó±ê×¼Ã÷È·Ìáµ½£ºËûµÄ½á¹ûÊDz»È·¶¨(unspecified) µÄ¡£
i = ++i + 1; // The behavior is unspecified
ÔÚ½éÉܸÅÄî֮ǰ£¬ÎÒÃÇÏȽâÊÍÒ»ÏÂËüµÄ½á¹û¡£Õâ¸ö±í´ïʽ( expression )°üº¬3¸ö×Ó±í´ïʽ( subexpression ):
e1 = ++i
e2 = e1 + 1
i = e2
ÕâÈý¸ö×Ó±í´ïʽ¶¼Ã»ÓÐ˳Ðòµã( sequence point )£¬¶ø ++ i ºÍ i = e3 ¶¼ÊÇÓи±×÷ÓÃ( side effect )µÄ±í´ïʽ¡£ÓÉÓÚûÓÐ˳Ðòµã£¬ÓïÑÔ²»±£Ö¤ÕâÁ½¸ö¸±×÷ÓõÄ˳Ðò¡£
¸ü¼Ó¿ÉŵÄÊÇ£¬Èç¹ûi ÊÇÒ»¸öÄÚ½¨ÀàÐÍ£¬²¢ÔÚÏÂÒ»¸ö˳Ðòµã֮ǰ±»¸Äд³¬¹ýÒ»´Î£¬ÄÇô½á¹ûÊÇ䶨Òå(undefined)µÄ£¡±ÈÈç±¾ÀýÖÐÈç¹ûÓÐ:
int i = 0x1000fffe;
i = ++i + 1; // The result is undefined!!
ÄãÒ²Ðí»áÈÏΪËûµÄ½á¹ûÊǼÓ1 »òÕß¼Ó2£¬Æäʵ¸üÔã¸â —— ½á¹û¿ÉÄÜÊÇ 0x1001ffff ¡£ËûµÄ¸ß×Ö½Ú½ÓÊÜÁËÒ»¸ö¸±×÷ÓõÄÄÚÈÝ£¬¶øµÍ×Ö½ÚÔò½ÓÊÜ
Ïà¹ØÎĵµ£º
·¢ÌùÇ°ÇëÏȶÁ£ºc/c++ °æ“¾µä”ÎÊÌâ½â´ð
C/C++Ò»Ö±¶¼ÊǵØÇòÉÏʹÓÃ×î¹ã·ºµÄ±à³ÌÓïÑÔ£¬¶øÎÒÃǵÄC/C++°æ×ÔÈ»ÈËÆøÒ²²»²î£¬µ«ÊÇÒ»Ö±¶¼ÓÐһЩºÝ³õ¼¶µÄÎÊÌâÌáÁËÓÖÌᣬ²¢²»ÊÇ˵ÕâЩÎÊÌâÈçºÎÈçºÎµÄ²»ºÃ£¬»¹ÊÇÈçºÎÈçºÎµÄÈõÖÇ£¬ÕâЩÎÊÌâÒ»Ö±¶¼ÊÇÐÂÊÖѧϰµÄ»ù´¡£¬ÊDZØÐëÒª¾¹ýµÄÃż÷£¬ËùÒÔÒ²ÓдæÔڵıØÒª£¬µ«ÊÇÌáµÄ¶àÁË£¬ ......
CSocketÅÉÉúÓÚCAsyncSocket, ËùÓÐÊ©ÖîÓÚÉϵIJÙ×÷½ÔΪͬ²½²Ù×÷¡£±ÈÈçConnnect,ReceiveµÈ¡£
ͬ²½²Ù×÷µÄÓŵãÊǼòµ¥Ò×Ó㬵«È±µãÒ²ÏÔ¶øÒ×¼û£¬Ð§ÂʵÍÏ£¬ÒòΪÄã±ØÐëµÈµ½Ò»¸ö²Ù×÷Íê³ÉÖ®ºó²ÅÄܽøÐÐÏÂÒ»¸ö²Ù×÷¡£
Èç¹ûÄãºÜ¹ØÐÄЧÂÊ£¬¾ÍÓ¦¸ÃÓÅÏÈʹÓÃCAsyncSocket¡£·´Ö®¾ÍÓÃCSocket¡£
ÏÂÃ潫˵Ã÷ÈçºÎÓÃCSocket´´½¨¼òµ¥µÄ·þÎñÆ÷ºÍ¿Í» ......
VCÖÐÏÂÃ漸¸ö½á¹¹Ìå´óС·Ö±ðÊǶàÉÙÄØ
struct MyStruct
{
double m4;
char m1;
int m3£»
};
struct MyStruct {
  ......
´óѧµÄʱºòÑ¡ÐÞ¹ýÒ»¸öѧÆÚÈÕÓµ±Ê±ÈÕÓïÀÏʦ¶ÔÎÒÃÇ˵£º“¶ÔÓÚÖйúÈËÀ´½²£¬Ñ§Ï°Ó¢ÓïÒ»°ãÊÇ¿Þ׎øÈ¥£¬Ð¦×ųöÀ´£»Ñ§Ï°ÈÕÓïÔòÊÇЦ׎øÈ¥£¬¿Þ×ųöÀ´”¡£Òâ˼¾ÍÊÇ˵ѧϰӢÓïµÄʱºò£¬ÈëÃŵÄʱºò±È½ÏÀ§ÄÑ£¬µ«ÊÇÖ»Òª¼á³ÖѧÏÂÈ¥£¬×ª±äÁ˺ºÓïµÄ˼άϰ¹ßʱ£¬×î½ü¿ÉÒÔ°ÑÓ¢ÓïѧµÃºÜºÃ¡£¶øÈÕÓﲻͬ£¬Ò»·½ÃæÒòΪÆäÓ뺺ÓïµÄ½ôÃÜ¹Ø ......
×î½üά»¤Logger¹²Ïí¿âµÄʱºòÐÂÔöÁ˸üÈËÐÔ»¯µÄ×Ô¶¯´´½¨¸÷¼¶Ä¿Â¼µÄ¹¦ÄÜ£¬ÏÂÃæÊÇÎÒʵÏÖ´´½¨ÖîÈç "c:\a\b\c\d\yeah.log"Öеĸ÷¼¶Îļþ¼ÐµÄ¹ý³Ì£¬Çë´ó¼ÒÖ¸½Ì£¡
BOOL CreateDirectoryInPathW(const wchar_t *sLogPath)
{
static BOOL bRet = 0;
CString csFullDir(_T(""));//Ôʼȫ·¾¶
int nLen = 0;//ÔÊ ......