C/C++ ºê´øÀ´µÄÆæ¼¼ÒùÇÉ
ÖÚ¶àC++Êé¼®¶¼ÖÒ¸æÎÒÃÇCÓïÑÔºêÊÇÍò¶ñÖ®Ê×£¬µ«ÊÂÇé×ܲ»ÈçÎÒÃÇÏëÏóµÄÄÇô»µ£¬¾ÍÈçͬgotoÒ»Ñù¡£ºêÓÐ
Ò»¸öºÜ´óµÄ×÷Ó㬾ÍÊÇ×Ô¶¯ÎªÎÒÃDzúÉú´úÂë¡£Èç¹û˵ģ°å¿ÉÒÔΪÎÒÃDzúÉú¸÷ÖÖÐͱðµÄ´úÂë(ÐͱðÌæ»»)£¬
ÄÇôºêÆäʵ¿ÉÒÔΪÎÒÃÇÔÚ·ûºÅÉϲúÉúеĴúÂë(¼´·ûºÅÌæ»»¡¢Ôö¼Ó)¡£
¹ØÓÚºêµÄһЩÓï·¨ÎÊÌ⣬¿ÉÒÔÔÚgoogleÉÏÕÒµ½¡£ÏàÐÅÎÒ£¬Äã¶ÔÓÚºêµÄÁ˽â¾ø¶ÔûÄãÏëÏóµÄÄÇô¶à¡£Èç¹ûÄã
»¹²»ÖªµÀ#ºÍ##£¬Ò²²»ÖªµÀprescan£¬ÄÇôÄã¿Ï¶¨¶ÔºêµÄÁ˽ⲻ¹»¡£
ÎÒÉÔ΢½²½âϺêµÄһЩÓï·¨ÎÊÌâ(˵Óï·¨ÎÊÌâËƺõ²»Í×£¬macroÖ»ÓëpreprocessorÓйأ¬¸úÓïÒå·ÖÎöÓÖÎÞ¹Ø)£º
1. ºê¿ÉÒÔÏñº¯ÊýÒ»Ñù±»¶¨Ò壬ÀýÈ磺
#define min(x,y) (x<y?x:y) //ÊÂʵÉÏÕâ¸öºê´æÔÚBUG
µ«ÊÇÔÚʵ¼ÊʹÓÃʱ£¬Ö»Óе±Ð´ÉÏmin()£¬±ØÐë¼ÓÀ¨ºÅ£¬min²Å»á±»×÷ΪºêÕ¹¿ª£¬·ñÔò²»×öÈκδ¦Àí¡£
2. Èç¹ûºêÐèÒª²ÎÊý£¬Äã¿ÉÒÔ²»´«£¬±àÒëÆ÷»á¸øÄ㾯¸æ(ºê²ÎÊý²»¹»)£¬µ«ÊÇÕâ»áµ¼Ö´íÎó¡£ÈçC++Êé¼®ÖÐËùÃè
ÊöµÄ£¬±àÒëÆ÷(Ô¤´¦ÀíÆ÷)¶ÔºêµÄÓï·¨¼ì²é²»¹»£¬ËùÒÔ¸ü¶àµÄ¼ì²éÐÔ¹¤×÷µÃÄã×Ô¼ºÀ´×ö¡£
3. ºÜ¶à³ÌÐòÔ±²»ÖªµÀµÄ#ºÍ##
#·ûºÅ°ÑÒ»¸ö·ûºÅÖ±½Óת»»Îª×Ö·û´®£¬ÀýÈ磺
#define STRING(x) #x
const char *str = STRING( test_string ); strµÄÄÚÈݾÍÊÇ"test_string"£¬Ò²¾ÍÊÇ˵#»á°ÑÆäºóµÄ·ûºÅ
Ö±½Ó¼ÓÉÏË«ÒýºÅ¡£
##·ûºÅ»áÁ¬½ÓÁ½¸ö·ûºÅ£¬´Ó¶ø²úÉúеķûºÅ(´Ê·¨²ã´Î)£¬ÀýÈ磺
#define SIGN( x ) INT_##x
int SIGN( 1 ); ºê±»Õ¹¿ªºó½«³ÉΪ£ºint INT_1;
4. ±ä²Îºê£¬Õâ¸ö±È½Ï¿á£¬ËüʹµÃÄã¿ÉÒÔ¶¨ÒåÀàËƵĺ꣺
#define LOG( format, ... ) printf( format, __VA_ARGS__ )
LOG( "%s %d", str, count );
__VA_ARGS__ÊÇϵͳԤ¶¨Òåºê£¬±»×Ô¶¯Ì滻Ϊ²ÎÊýÁÐ±í¡£
5. µ±Ò»¸öºê×Ô¼ºµ÷ÓÃ×Ô¼ºÊ±£¬»á·¢Éúʲô£¿ÀýÈ磺
#define TEST( x ) ( x + TEST( x ) )
TEST( 1 ); »á·¢Éúʲô£¿ÎªÁË·ÀÖ¹ÎÞÏÞÖƵݹéÕ¹¿ª£¬Óï·¨¹æ¶¨£¬µ±Ò»¸öºêÓöµ½×Ô¼ºÊ±£¬¾ÍÍ£Ö¹Õ¹¿ª£¬Ò²¾ÍÊÇ
˵£¬µ±¶ÔTEST( 1 )½øÐÐÕ¹¿ªÊ±£¬Õ¹¿ª¹ý³ÌÖÐÓÖ·¢ÏÖÁËÒ»¸öTEST£¬ÄÇô¾Í½«Õâ¸öTESTµ±×÷Ò»°ãµÄ·ûºÅ¡£TEST(1)
×îÖÕ±»Õ¹¿ªÎª£º1 + TEST( 1) ¡£
6. ºê²ÎÊýµÄprescan£¬
µ±Ò»¸öºê²ÎÊý±»·Å½øºêÌåʱ£¬Õâ¸öºê²ÎÊý»áÊ×Ïȱ
Ïà¹ØÎĵµ£º
ǶÈëµ½¶à¸öϵͳ±à³Ìʱ³£³£³öÏÖ±àÂëÎÊÌ⣬ÌرðÊÇÖÐÎÄ£¬²¢ÇÒ¶ÔÓÚ¹ú±êGB2312À´Ëµ£¬²»ÏñUTF-8ÄÇÑù¿ÉÒÔÓÃËã·¨Ö±½ÓתΪunicode£¨´«ËµÊÇÕâô˵µÄ£¬ÎÒҲûÊÔ¹ý£©£¬ËùÒÔGBµ½UnicodeÖ»ÄÜÊÇÒ»¶ÔÒ»µÄת»»¡£
ÒÔÇ°Åöµ½¹ýGBתΪUnicodeµÄÄÑÌ⣬ÔÚÍøÉÏÕÒµ½ÁËÔ´Â룬ÎÒÖ»ÊÇÐÞ¸ÄÁËһϲéÕҵĴúÂ룬½«²éÕÒËã·¨¸ÄΪ¶þ·Ö²éÕÒ¡£
&n ......
Òý×Ô¡¡http://www.wangchao.net.cn/bbsdetail_625196.html
¡¡¡¡ÔÚVisual C++ 2005ÖУ¬ÈçºÎµ÷ÓÃÆäËü±àÒëÆ÷±àÒëcppÎļþÄØ? »»¾ä»°Ëµ£¬ÈçºÎ°ÑÆäËü±àÒëÆ÷¼¯³Éµ½VC2005µÄIDEÖÐÄØ?
¡¡¡¡ÏóICCÕâÑùµÄ±àÒëÆ÷°²×°Ö®ºó»á×Ô¶¯¼¯³É½øÀ´£¬Òª¼¯³ÉÆäËû±àÒëÆ÷ÄÇ»¹µÃ×Ô¼º¶¯ÊÖ¡£ÏÂÃæ½éÉÜÒ»ÖÖ¼òµ¥¡¢Ç³²ãµÄ“¼¯³É”·½·¨¡£
¡¡¡¡ÄãҲР......
1£¬LinuxµÄI2CÇý¶¯¼Ü¹¹¸ÅÀÀ
LinuxÖÐI2C×ÜÏßµÄÇý¶¯·ÖΪÁ½¸ö²¿·Ö£¬×ÜÏßÇý¶¯£¨BUS£©ºÍÉ豸Çý¶¯£¨DEVICE£©¡£ÆäÖÐ×ÜÏßÇý¶¯µÄÖ°Ôð£¬ÊÇΪϵͳÖÐÿ¸öI2C×ÜÏßÔö¼ÓÏàÓ¦µÄ¶Áд·½·¨£¨±ÈÈ粻ͬµÄÖ÷оƬ¼¯³ÉµÄI2C¿ØÖÆÆ÷£©¡£µ«ÊÇ×ÜÏßÇý¶¯±¾Éí²¢²»»á½øÐÐÈκεÄͨѶ£¬ËüÖ»ÊÇ´æÔÚÔÚÄÇÀµÈ´ýÉ豸Çý¶¯µ÷ÓÃÆäº ......
-
ÔÚVisual C++Ï¿ª·¢Oracle¿â½Ó¿ÚÖ÷ÒªÓÐÁ½ÖÖ·½·¨¡£Ò»ÖÖ·½·¨ÊÇÀûÓÃVisual C++ÌṩµÄ¶àÖÖÊý¾Ý¿â·ÃÎʼ¼Êõ£¬È翪·ÅÊý¾Ý¿âÁ¬½ÓODBC¡¢Êý¾Ý´æÈ¡¶ÔÏóDAO¡¢¶ÔÏóÁ¬½ÓºÍǶÈëÊý¾Ý¿âOLE DBºÍActiveXÊý¾Ý¶ÔÏóADOµÈ¡£ÁíÒ»ÖÖ·½·¨ÊÇÔÚVisual C++ÖÐǶÈëSQLÓï¾ä£¬Õâ¾ÍÊÇËùÖ¸µÄPro*C/C++£¨±¾Îļò³ÆPROC£©¡£Ç°Ò»ÖÖ·½·¨ÓÉÓÚÓÐMFC Ç¿´óµÄÀà¿âÖ§ ......
CÖÐÔ¤±àÒëºê¶¨Òå
2010-01-07 11:49
ÔÚ½«Ò»¸öCÔ´³ÌÐòת»»Îª¿ÉÖ´ÐгÌÐòµÄ¹ý³ÌÖÐ, ±àÒëÔ¤´¦ÀíÊÇ×î³õµÄ²½Öè. ÕâÒ»²½ÖèÊÇÓÉÔ¤´¦ÀíÆ÷(preprocessor)À´Íê³ÉµÄ. ÔÚÔ´Á÷³ÌÐò±»±àÒëÆ÷´¦Àí֮ǰ, Ô¤´¦ÀíÆ÷Ê×ÏȶÔÔ´³ÌÐòÖеÄ"ºê(macro)"½øÐд¦Àí.
C ³õѧÕß¿ÉÄܶÔÔ¤´¦ÀíÆ÷ûʲô¸ÅÄî, ÕâÊÇÇéÓпÉÔµÄ: Ò»°ãµÄC±àÒëÆ÷¶¼½«Ô¤´¦Àí, »ã±à, ± ......