[ZZ] C/C++³ÌÐòԱӦƸ³£¼ûÃæÊÔÌâÉîÈëÆÊÎö £¨¶þ£©
3.ÄÚ¹¦Ìâ
¡¡¡¡ÊÔÌâ1£º·Ö±ð¸ø³öBOOL£¬int£¬float£¬Ö¸Õë±äÁ¿ Óë“ÁãÖµ”±È½ÏµÄ if Óï¾ä£¨¼ÙÉè±äÁ¿ÃûΪvar£©
¡¡¡¡½â´ð£º
¡¡¡¡¡¡BOOLÐͱäÁ¿£ºif(!var)
¡¡¡¡¡¡intÐͱäÁ¿£º if(var==0)
¡¡¡¡¡¡floatÐͱäÁ¿£º
¡¡¡¡¡¡const float EPSINON = 0.00001;
¡¡¡¡¡¡if ((x >= - EPSINON) && (x <= EPSINON)
¡¡¡¡¡¡Ö¸Õë±äÁ¿£º¡¡¡¡if(var==NULL)
¡¡¡¡ÆÊÎö£º
¡¡¡¡¿¼²é¶Ô0ÖµÅжϵēÄÚ¹¦”£¬BOOLÐͱäÁ¿µÄ0ÅжÏÍêÈ«¿ÉÒÔд³Éif(var==0)£¬¶øintÐͱäÁ¿Ò²¿ÉÒÔд³Éif(!var)£¬Ö¸Õë±äÁ¿µÄÅжÏÒ²¿ÉÒÔд³Éif(!var)£¬ÉÏÊöд·¨ËäÈ»³ÌÐò¶¼ÄÜÕýÈ·ÔËÐУ¬µ«ÊÇδÄÜÇåÎúµØ±í´ï³ÌÐòµÄÒâ˼¡£
¡¡¡¡Ò»°ãµÄ£¬Èç¹ûÏëÈÃifÅжÏÒ»¸ö±äÁ¿µÄ“Õæ”¡¢“¼Ù”£¬Ó¦Ö±½ÓʹÓÃif(var)¡¢if(!var)£¬±íÃ÷ÆäΪ“Âß¼”Åжϣ»Èç¹ûÓÃifÅжÏÒ»¸öÊýÖµÐͱäÁ¿(short¡¢int¡¢longµÈ)£¬Ó¦¸ÃÓÃif(var==0)£¬±íÃ÷ÊÇÓë0½øÐГÊýÖµ”ÉϵıȽϣ»¶øÅжÏÖ¸ÕëÔòÊÊÒËÓÃif(var==NULL)£¬ÕâÊÇÒ»Öֺܺõıà³Ìϰ¹ß¡£
¡¡¡¡¸¡µãÐͱäÁ¿²¢²»¾«È·£¬ËùÒÔ²»¿É½«float±äÁ¿ÓÓ==”»ò“£¡=”ÓëÊý×ֱȽϣ¬Ó¦¸ÃÉ跨ת»¯³É“>=”»ò“<=”ÐÎʽ¡£Èç¹ûд³Éif (x == 0.0)£¬ÔòÅÐΪ´í£¬µÃ0·Ö¡£
¡¡¡¡ÊÔÌâ2£ºÒÔÏÂΪWindows NTϵÄ32λC++³ÌÐò£¬Çë¼ÆËãsizeofµÄÖµ
void Func ( char str[100] )
{
¡¡sizeof( str ) = ?
}
void *p = malloc( 100 );
sizeof ( p ) = ?
¡¡¡¡½â´ð£º
sizeof( str ) = 4
sizeof ( p ) = 4
¡¡¡¡ÆÊÎö£º
¡¡¡¡Func ( char str[100] )º¯ÊýÖÐÊý×éÃû×÷Ϊº¯ÊýÐβÎʱ£¬ÔÚº¯ÊýÌåÄÚ£¬Êý×éÃûʧȥÁ˱¾ÉíµÄÄÚº£¬½ö½öÖ»ÊÇÒ»¸öÖ¸Õ룻ÔÚʧȥÆäÄÚºµÄͬʱ£¬Ëü»¹Ê§È¥ÁËÆä³£Á¿ÌØÐÔ£¬¿ÉÒÔ×÷×ÔÔö¡¢×Ô¼õµÈ²Ù×÷£¬¿ÉÒÔ±»Ð޸ġ£
¡¡¡¡Êý×éÃûµÄ±¾ÖÊÈçÏ£º
¡¡¡¡£¨1£©Êý×éÃûÖ¸´úÒ»ÖÖÊý¾Ý½á¹¹£¬ÕâÖÖÊý¾Ý½á¹¹¾ÍÊÇÊý×飻
¡¡¡¡ÀýÈ磺
char str[10];
cout << sizeof(str) << endl;
¡¡¡¡Êä³ö½á¹ûΪ10£¬strÖ¸´úÊý¾Ý½á¹¹char[10]¡£
¡¡¡¡£¨2£©Êý×éÃû¿ÉÒÔת»»ÎªÖ¸ÏòÆäÖ¸´úʵÌåµÄÖ¸Õ룬¶øÇÒÊÇÒ»¸öÖ¸Õë³£Á¿£¬²»ÄÜ×÷×ÔÔö¡¢×Ô¼õµÈ²Ù×÷£¬²»Äܱ»Ð޸ģ»
char str[10];
str++; //±àÒë³ö´í£¬Ìáʾstr²»ÊÇ×óÖµ¡¡
¡¡¡¡£¨3£©Êý×éÃû×÷Ϊº¯ÊýÐβÎʱ£¬ÂÙΪÆÕָͨÕë¡£
¡¡¡¡Windows NT 32λƽ̨Ï£¬Ö¸ÕëµÄ³¤¶È£¨Õ¼ÓÃÄÚ´æµÄ´óС£©Îª4×Ö½Ú£¬¹Êsizeof( str ) ¡¢sizeof ( p ) ¶¼Îª4¡£
¡¡¡¡ÊÔÌâ3£ºÐ´Ò»¸ö“±ê×¼&rd
Ïà¹ØÎĵµ£º
±¾ÎÄ´Ó½éÉÜ»ù´¡¸ÅÄîÈëÊÖ£¬Ì½ÌÖÁËÔÚC/C++ÖжÔÈÕÆÚºÍʱ¼ä²Ù×÷ËùÓõ½µÄÊý¾Ý½á¹¹ºÍº¯Êý£¬²¢¶Ô¼ÆÊ±¡¢Ê±¼äµÄ»ñÈ¡¡¢Ê±¼äµÄ¼ÆËãºÍÏÔʾ¸ñʽµÈ·½Ãæ½øÐÐÁ˲ûÊö¡£±¾ÎÄ»¹Í¨¹ý´óÁ¿µÄʵÀýÏòÄãչʾÁËtime.hÍ·ÎļþÖÐÉùÃ÷µÄ¸÷ÖÖº¯ÊýºÍÊý¾Ý½á¹¹µÄÏêϸʹÓ÷½·¨¡£
¹Ø¼ü×Ö£ºUTC£¨ÊÀ½ç±ê׼ʱ¼ä£©£¬Calendar Time£¨ÈÕÀúʱ¼ä£©£¬epoch£¨Ê±¼äµã ......
C/C++ÊDz»¼ì²éÊý×éϱêÊÇ·ñÔ½½çµÄ¡£
²»¼ì²éϱêÊÇ·ñÔ½½ç¿ÉÒÔÓÐЧÌá¸ß³ÌÐòÔËÐеÄЧÂÊ£¬ÒòΪÈç¹ûÄã¼ì²é£¬ÄÇô±àÒëÆ÷±ØÐëÔÚÉú³ÉµÄÄ¿±ê´úÂëÖмÓÈë¶îÍâµÄ´úÂëÓÃÓÚ³ÌÐòÔËÐÐʱ¼ì²âϱêÊÇ·ñÔ½½ç£¬Õâ¾Í»áµ¼Ö³ÌÐòµÄÔËÐÐËÙ¶ÈϽµ£¬ËùÒÔΪÁ˳ÌÐòµÄÔËÐÐЧÂÊ£¬C/C++²Å²»¼ì²éϱêÊÇ·ñÔ½½ç¡£
  ......
C/C++±ÊÊÔÌâϵÁÐ
Ô¤´¦ÀíÆ÷£¨Preprocessor£©
1. ÓÃÔ¤´¦ÀíÖ¸Áî#define ÉùÃ÷Ò»¸ö³£Êý£¬ÓÃÒÔ±íÃ÷1ÄêÖÐÓжàÉÙÃ루ºöÂÔÈòÄêÎÊÌ⣩
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
ÎÒÔÚÕâÏë¿´µ½¼¸¼þÊÂÇ飺
1). #define Óï·¨µÄ»ù±¾ÖªÊ¶£¨ÀýÈ磺²»ÄÜÒԷֺŽáÊø£¬À¨ºÅµÄʹÓ㬵ȵȣ©
2). ¶®µÃÔ¤´¦ÀíÆ÷½«ÎªÄã¼ÆËã³ ......
ÏÈÓñ´¶ûµÄÒ»µÀ±ÊÊÔÌâ¼òÒªµÄ˵Ã÷һϰɣº
¡¾Ì⡿˵Ã÷ÒÔϳÌÐò¡£
#include
int main(void)
{
unsigned int a[3] = {0x01020304, 0x05060708, 0x090a0b0c};
unsigned int *p = (unsigned int *)((int)a +1);¢Ù
printf("%x\n", *p);
return 0;
}
¡¾ÌâÄ¿½âÎö¡¿
Õâ¶Î³ÌÐòµÄÊä³ö½á¹ûÓ¦ ......
PS:
½ñÌìÈ¥¸£ê¿²Î¼ÓËûÃǹ«Ë¾µÄ±ÊÊÔÁË£¬¿¼µÄ²»ÊǺÜˬ¡£¡£¡£¡£¡£Ò»Ð©ºÜ¼òµ¥µÄ¸ÅÄîÌ⣬²»ÖªµÀÔõô×÷´ð£¬¿´À´Òª¶à¶à¹®¹ÌÏÂÀíÂÛ֪ʶÀ²£¡£¡£¡£¡£¡£¡
ÒÔÏÂת:
ÎÒ´Óʼ¼Êõ¹¤×÷£¬
Õ⼸ÄêµÄÃæÊÔÓë±»ÃæÊÔ×ܽá
ÏÈ˵ÎÒÈ¥±»ÃæÊԵľÑé°É¡£
»Ø´ðÇå³þÁË2¸öÎÊÌ⣬¾ÍÄÜ˳Àû¹ý¹ØÁË¡£
1¡£ÎªÊ²Ã´ÒªÀ뿪ÉÏÒ ......