ʲôʱºòÐèÒª´´½¨Ï̳߳ØÄØ£¿¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÓ¦ÓÃÐèҪƵ·±µÄ´´½¨ºÍÏú»ÙỊ̈߳¬¶øÈÎÎñÖ´ÐеÄʱ¼äÓַdz£¶Ì£¬ÕâÑùÏ̴߳´½¨ºÍÏú»ÙµÄ´øÀ´µÄ¿ªÏú¾Í²»ÈݺöÊÓ£¬ÕâʱҲÊÇÏ̳߳ظóö³¡µÄ»ú»áÁË¡£Èç¹ûÏ̴߳´½¨ºÍÏú»Ùʱ¼äÏà±ÈÈÎÎñÖ´ÐÐʱ¼ä¿ÉÒÔºöÂÔ²»¼Æ£¬ÔòûÓбØÒªÊ¹ÓÃÏ̳߳ØÁË¡£
ÏÂÃæÊÇLinuxϵͳÏÂÓÃCÓïÑÔ´´½¨µÄÒ»¸öÏ̳߳ء£Ï̳߳ػáά»¤Ò»¸öÈÎÎñÁ´±í(ÿ¸öCThread_worker½á¹¹¾ÍÊÇÒ»¸öÈÎÎñ)¡£
pool_init()º¯ÊýÔ¤ÏÈ´´½¨ºÃmax_thread_num¸öỊ̈߳¬Ã¿¸öÏß³ÌÖ´thread_routine ()º¯Êý¡£¸Ãº¯ÊýÖÐ
1. while (pool->cur_queue_size == 0)
2. {
3. pthread_cond_wait (&(pool->queue_ready),&(pool->queue_lock));
4. }
±íʾÈç¹ûÈÎÎñÁ´±íÖÐûÓÐÈÎÎñ£¬Ôò¸ÃÏ̳߳öÓÚ×èÈûµÈ´ý״̬¡£·ñÔò´Ó¶ÓÁÐÖÐÈ¡³öÈÎÎñ²¢Ö´ÐС£
pool_add_worker()º¯ÊýÏòÏ̳߳صÄÈÎÎñÁ´±íÖмÓÈëÒ»¸öÈÎÎñ£¬¼ÓÈëºóͨ¹ýµ÷ÓÃpthread_cond_signal (&(pool->queue_ready))»½ÐÑÒ»¸ö³öÓÚ×èÈû״̬µÄÏß³Ì(Èç¹ûÓеϰ)¡£
&nbs ......
ʲôʱºòÐèÒª´´½¨Ï̳߳ØÄØ£¿¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÓ¦ÓÃÐèҪƵ·±µÄ´´½¨ºÍÏú»ÙỊ̈߳¬¶øÈÎÎñÖ´ÐеÄʱ¼äÓַdz£¶Ì£¬ÕâÑùÏ̴߳´½¨ºÍÏú»ÙµÄ´øÀ´µÄ¿ªÏú¾Í²»ÈݺöÊÓ£¬ÕâʱҲÊÇÏ̳߳ظóö³¡µÄ»ú»áÁË¡£Èç¹ûÏ̴߳´½¨ºÍÏú»Ùʱ¼äÏà±ÈÈÎÎñÖ´ÐÐʱ¼ä¿ÉÒÔºöÂÔ²»¼Æ£¬ÔòûÓбØÒªÊ¹ÓÃÏ̳߳ØÁË¡£
ÏÂÃæÊÇLinuxϵͳÏÂÓÃCÓïÑÔ´´½¨µÄÒ»¸öÏ̳߳ء£Ï̳߳ػáά»¤Ò»¸öÈÎÎñÁ´±í(ÿ¸öCThread_worker½á¹¹¾ÍÊÇÒ»¸öÈÎÎñ)¡£
pool_init()º¯ÊýÔ¤ÏÈ´´½¨ºÃmax_thread_num¸öỊ̈߳¬Ã¿¸öÏß³ÌÖ´thread_routine ()º¯Êý¡£¸Ãº¯ÊýÖÐ
1. while (pool->cur_queue_size == 0)
2. {
3. pthread_cond_wait (&(pool->queue_ready),&(pool->queue_lock));
4. }
±íʾÈç¹ûÈÎÎñÁ´±íÖÐûÓÐÈÎÎñ£¬Ôò¸ÃÏ̳߳öÓÚ×èÈûµÈ´ý״̬¡£·ñÔò´Ó¶ÓÁÐÖÐÈ¡³öÈÎÎñ²¢Ö´ÐС£
pool_add_worker()º¯ÊýÏòÏ̳߳صÄÈÎÎñÁ´±íÖмÓÈëÒ»¸öÈÎÎñ£¬¼ÓÈëºóͨ¹ýµ÷ÓÃpthread_cond_signal (&(pool->queue_ready))»½ÐÑÒ»¸ö³öÓÚ×èÈû״̬µÄÏß³Ì(Èç¹ûÓеϰ)¡£
&nbs ......
ת×Ô£ºhttp://commandos.blog.51cto.com/154976/130652
Ò»¡¢ »·¾³×¼±¸
ÔÚ±¾ÎÄÖУ¬ËùÓгÌÐò¾ùÔÚLinuxÏ¿ª·¢Íê³É£¬¾²âÊÔÄܹ»Õý³£ÔËÐС£
ÔÚ¿ª·¢¹ý³ÌÖУ¬ÎÒÃÇÐèÒªÓõ½gSOAP£¬¿ÉÒÔ´ÓÒÔÏÂÍøÖ·ÏÂÔØ»ñµÃ£º[url]http://www.cs.fsu.edu/~engelen/soap.html[/url]
ÎÒÏÂÔØµÄÊÇgsoap_2.7.12.tar.gz
ÏÂÔØÏÂÀ´½âѹËõ£¬°´Õý³£°²×°¹ý³Ì½øÐбàÒë¡¢°²×°¡£
# tar zxvf gsozp_2.7.12.tar.gz
# cd gsoap_2.7.12
# ./configure –-prefix=/usr/local/gSOAP£¨Ö¸¶¨°²×°Â·¾¶£©
# make
# make install
¶þ¡¢ Éú³ÉÏà¹ØÎļþ
1¡¢Í¨¹ýWSDLÎĵµ£¬Éú³ÉC/C++Í·Îļþ
# /usr/local/gSOAP/bin/wsdl2h –c –o TestHeader.h [url]http://192.168.0.151:8080/services/TestWS?wsdl[/url]
2¡¢¿½±´gSOAPÔ´´úÂëÖÐimportÎļþ¼ÐϵÄstlvector.hÎļþµ½TestHeader.hͬһĿ¼£¬Èç¹ûÔÚ½âÎöWSDLÎĵµÊ±Ê¹ÓÃÁË-s²ÎÊý£¬¼´²»Ê¹ÓÃSTL£¬Ôò²»ÐèÒª¿½±´ÕâÒ»Îļþ¡£
3¡¢½âÎöTestHeader.hÎļþ£¬Éú³É´æ¸ù³ÌÐò
# /usr/local/gSOAP/bin/soapcpp2 –c –C TestHeader.h
ÃüÁîÖвÎÊý-c´ú±íÉú³É±ê×¼C³ÌÐò£¬ÈôûÓÐÕâ¸ö²ÎÊý£¬ÔòÉú³ÉC++³ÌÐò¡£
ÃüÁîÖвÎÊý-C´ú±í½öÉú³É¿Í»§¶Ë³ÌÐò£¬ÈôûÓÐÕâ¸ö²ÎÊý£¬Ô ......
ת×Ô£ºhttp://commandos.blog.51cto.com/154976/130652
Ò»¡¢ »·¾³×¼±¸
ÔÚ±¾ÎÄÖУ¬ËùÓгÌÐò¾ùÔÚLinuxÏ¿ª·¢Íê³É£¬¾²âÊÔÄܹ»Õý³£ÔËÐС£
ÔÚ¿ª·¢¹ý³ÌÖУ¬ÎÒÃÇÐèÒªÓõ½gSOAP£¬¿ÉÒÔ´ÓÒÔÏÂÍøÖ·ÏÂÔØ»ñµÃ£º[url]http://www.cs.fsu.edu/~engelen/soap.html[/url]
ÎÒÏÂÔØµÄÊÇgsoap_2.7.12.tar.gz
ÏÂÔØÏÂÀ´½âѹËõ£¬°´Õý³£°²×°¹ý³Ì½øÐбàÒë¡¢°²×°¡£
# tar zxvf gsozp_2.7.12.tar.gz
# cd gsoap_2.7.12
# ./configure –-prefix=/usr/local/gSOAP£¨Ö¸¶¨°²×°Â·¾¶£©
# make
# make install
¶þ¡¢ Éú³ÉÏà¹ØÎļþ
1¡¢Í¨¹ýWSDLÎĵµ£¬Éú³ÉC/C++Í·Îļþ
# /usr/local/gSOAP/bin/wsdl2h –c –o TestHeader.h [url]http://192.168.0.151:8080/services/TestWS?wsdl[/url]
2¡¢¿½±´gSOAPÔ´´úÂëÖÐimportÎļþ¼ÐϵÄstlvector.hÎļþµ½TestHeader.hͬһĿ¼£¬Èç¹ûÔÚ½âÎöWSDLÎĵµÊ±Ê¹ÓÃÁË-s²ÎÊý£¬¼´²»Ê¹ÓÃSTL£¬Ôò²»ÐèÒª¿½±´ÕâÒ»Îļþ¡£
3¡¢½âÎöTestHeader.hÎļþ£¬Éú³É´æ¸ù³ÌÐò
# /usr/local/gSOAP/bin/soapcpp2 –c –C TestHeader.h
ÃüÁîÖвÎÊý-c´ú±íÉú³É±ê×¼C³ÌÐò£¬ÈôûÓÐÕâ¸ö²ÎÊý£¬ÔòÉú³ÉC++³ÌÐò¡£
ÃüÁîÖвÎÊý-C´ú±í½öÉú³É¿Í»§¶Ë³ÌÐò£¬ÈôûÓÐÕâ¸ö²ÎÊý£¬Ô ......
¹ØÓÚ C/C++ º¯Êýµ÷ÓÃÔ¼¶¨£¬´ó¶àÊýʱºò²¢²»»áÓ°Ïì³ÌÐòÂß¼£¬µ«Óöµ½¿çÓïÑÔ±à³Ìʱ£¬Á˽âһϻ¹ÊÇÓкô¦µÄ¡£
VC ÖÐĬÈϵ÷ÓÃÊÇ __cdecl ·½Ê½£¬Windows API ʹÓà __stdcall µ÷Ó÷½Ê½£¬ÔÚ DLL µ¼³öº¯ÊýÖУ¬ÎªÁ˸ú Windows API ±£³ÖÒ»Ö£¬½¨ÒéʹÓà __stdcall ·½Ê½¡£
µ÷ÓÃÔ¼¶¨¸ú¶ÑÕ»Çå³ýÃÜÇÐÏà¹Ø¡£Èç¹ûдһ¸ö»ã±àº¯Êý£¬¸ø C/C++ µ÷Óã¬ÔÚ __cdecl ·½Ê½Ï£¬Ôò»ã±àº¯ÊýÎÞÐèÇå³ý¶ÑÕ»£¬ÔÚ __stdcall ·½Ê½Ï£¬»ã±àº¯ÊýÐèÒªÔÚ·µ»Ø£¨RET£©Ö®Ç°»Ö¸´¶ÑÕ»¡£
C ÓïÑÔÓÐ __cdecl¡¢__stdcall¡¢__fastcall¡¢naked¡¢__pascal¡£
C++ ÓïÑÔÓÐ __cdecl¡¢__stdcall¡¢__fastcall¡¢naked¡¢__pascal¡¢__thiscall£¬±È C ÓïÑÔ¶à³öÒ»ÖÖ __thiscall µ÷Ó÷½Ê½¡£
ÔÚVCÖУ¬¿ÉÒÔÉèÖÃĬÈϵĵ÷ÓÃÔ¼¶¨£¬ÉèÖ÷¾¶Îª£º
Project à Properties à Configuration Properties à C/C++ à Advanced à Call Conversion¡£
ÏÂÃæÏêϸ½éÉÜÈçÉÏÁùÖÖµ÷Ó÷½Ê½£º
1¡¢__cdecl
__cdeclµ÷ÓÃÔ¼¶¨ÓÖ³ÆÎª C µ÷ÓÃÔ¼¶¨£¬ÊÇ C/C++ ÓïÑÔȱʡµÄµ÷ÓÃÔ¼¶¨¡£²ÎÊý°´ÕÕ´ÓÓÒÖÁ×óµÄ·½Ê½ÈëÕ»£¬º¯Êý±¾Éí²»ÇåÀíÕ»£¬´Ë¹¤×÷Óɵ÷ÓÃÕ߸ºÔ𣬷µ»ØÖµÔÚEAXÖС£ÓÉÓÚÓɵ÷ÓÃÕßÇåÀíÕ»£¬ËùÒÔÔÊÐí¿É±ä²ÎÊýº¯Êý ......
¹ØÓÚ C/C++ º¯Êýµ÷ÓÃÔ¼¶¨£¬´ó¶àÊýʱºò²¢²»»áÓ°Ïì³ÌÐòÂß¼£¬µ«Óöµ½¿çÓïÑÔ±à³Ìʱ£¬Á˽âһϻ¹ÊÇÓкô¦µÄ¡£
VC ÖÐĬÈϵ÷ÓÃÊÇ __cdecl ·½Ê½£¬Windows API ʹÓà __stdcall µ÷Ó÷½Ê½£¬ÔÚ DLL µ¼³öº¯ÊýÖУ¬ÎªÁ˸ú Windows API ±£³ÖÒ»Ö£¬½¨ÒéʹÓà __stdcall ·½Ê½¡£
µ÷ÓÃÔ¼¶¨¸ú¶ÑÕ»Çå³ýÃÜÇÐÏà¹Ø¡£Èç¹ûдһ¸ö»ã±àº¯Êý£¬¸ø C/C++ µ÷Óã¬ÔÚ __cdecl ·½Ê½Ï£¬Ôò»ã±àº¯ÊýÎÞÐèÇå³ý¶ÑÕ»£¬ÔÚ __stdcall ·½Ê½Ï£¬»ã±àº¯ÊýÐèÒªÔÚ·µ»Ø£¨RET£©Ö®Ç°»Ö¸´¶ÑÕ»¡£
C ÓïÑÔÓÐ __cdecl¡¢__stdcall¡¢__fastcall¡¢naked¡¢__pascal¡£
C++ ÓïÑÔÓÐ __cdecl¡¢__stdcall¡¢__fastcall¡¢naked¡¢__pascal¡¢__thiscall£¬±È C ÓïÑÔ¶à³öÒ»ÖÖ __thiscall µ÷Ó÷½Ê½¡£
ÔÚVCÖУ¬¿ÉÒÔÉèÖÃĬÈϵĵ÷ÓÃÔ¼¶¨£¬ÉèÖ÷¾¶Îª£º
Project à Properties à Configuration Properties à C/C++ à Advanced à Call Conversion¡£
ÏÂÃæÏêϸ½éÉÜÈçÉÏÁùÖÖµ÷Ó÷½Ê½£º
1¡¢__cdecl
__cdeclµ÷ÓÃÔ¼¶¨ÓÖ³ÆÎª C µ÷ÓÃÔ¼¶¨£¬ÊÇ C/C++ ÓïÑÔȱʡµÄµ÷ÓÃÔ¼¶¨¡£²ÎÊý°´ÕÕ´ÓÓÒÖÁ×óµÄ·½Ê½ÈëÕ»£¬º¯Êý±¾Éí²»ÇåÀíÕ»£¬´Ë¹¤×÷Óɵ÷ÓÃÕ߸ºÔ𣬷µ»ØÖµÔÚEAXÖС£ÓÉÓÚÓɵ÷ÓÃÕßÇåÀíÕ»£¬ËùÒÔÔÊÐí¿É±ä²ÎÊýº¯Êý ......
±¾ÎĽéÉÜÁËʹÓÃPro*C/C++ÔÚVisual
C++»·¾³Ï¿ª·¢OracleÊý¾Ý¿â½Ó¿Ú³ÌÐòµÄ·½·¨
Éè¼ÆË¼Â·ÆäʵÕâÑù£ºÊ×ÏÈͨ¹ýVC½¨Á¢Ò»¸ö¹¤³Ì£¬×Ô¶¯»¯½¨Á¢MAKEFILE£¬UNIXÐèÒª×Ô¼ºÐ´MAKEFILE¡£
Æä´ÎÅäÖÃVCµÄ»·¾³£¬½«PROCµÄ.H£¬.LIBµÄ·¾¶¼ÓÈëDERECTIRY¡£Ð´Ò»¸öPCÎļþ£¬¼´PROCÎļþ¡£·Åµ½¹¤³ÌÏàÓ¦µÄĿ¼Ï¡£È»ºó°ÑPCÎļþ¼ÓÈ빤³Ì¡£Ê¹ÓÃPROCUI.EXE±àÒë³ÉCÔ´Îļþ¡£
Ñ¡ÔñOraSQL8.LIBÎļþ£¬µ¥»÷“´ò¿ª”Å¥£¬Íê³É½«ÔËÐпâÎļþ¼ÓÈ빤³Ì¡£
×îºó°ÑCÎļþ¼ÓÈ빤³Ì¡£¡¡
¸ÅÊö
¡¡¡¡ÔÚVisual
C++Ï¿ª·¢Oracle¿â½Ó¿ÚÖ÷ÒªÓÐÁ½ÖÖ·½·¨¡£Ò»ÖÖ·½·¨ÊÇÀûÓÃVisual
C++ÌṩµÄ¶àÖÖÊý¾Ý¿â·ÃÎʼ¼Êõ£¬È翪·ÅÊý¾Ý¿âÁ¬½ÓODBC¡¢Êì¾Ý´æÈ¡¶ÔÏóDAO¡¢¶ÔÏóÁ¬½ÓºÍǶÈëÊý¾Ý¿âOLE
DBºÍActiveXÊý¾Ý¶ÔÏóADOµÈ¡£ÁíÒ»ÖÖ·½·¨ÊÇÔÚVisual
C++ÖÐǶÈëSQLÓï¾ä£¬Õâ¾ÍÊÇËùÖ¸µÄPro*C/C++£¨±¾Îļò³ÆPROC£©¡£Ç°Ò»ÖÖ·½·¨ÓÉÓÚÓÐMFC
Ç¿´óµÄÀà¿âÖ§³Ö£¬ÊìϤVC±à³ÌʱÔòʵÏÖ·½±ã£¬ÇÒ¿ÉÒÆÖ²ÐÔÇ¿£»µ«ÊÇ£¬ÓëPROC
Ïà±È£¬Ó¦ÓóÌÐòÐèÒª¾¹ýÁ½²ã²ÅÄܺÍÊý¾Ý¿âͨÐŽӿڽ¨Á¢ÁªÏµ£¬±à³ÌÏà¶Ô¸´ÔÓ£¬Ö´ÐÐЧÂÊÏà¶Ô½ÏµÍ¡£PROCÖ§³ÖǶÈëʽPL/SQL ¿éµÈÖ±½Óµ÷ÓÃOracle
¿â£¬½«¹ý³Ì»¯ÓïÑԺͷǹý³Ì»¯ÓïÑÔÏà½áºÏ£¬ÐγÉÒ»ÖÖ¸üÇ¿µÄ¿ª·¢¹¤¾ß£¬¿É¿ª·¢³öÂú×ã¸÷ÖÖ¸ ......
±¾ÎĽéÉÜÁËʹÓÃPro*C/C++ÔÚVisual
C++»·¾³Ï¿ª·¢OracleÊý¾Ý¿â½Ó¿Ú³ÌÐòµÄ·½·¨
Éè¼ÆË¼Â·ÆäʵÕâÑù£ºÊ×ÏÈͨ¹ýVC½¨Á¢Ò»¸ö¹¤³Ì£¬×Ô¶¯»¯½¨Á¢MAKEFILE£¬UNIXÐèÒª×Ô¼ºÐ´MAKEFILE¡£
Æä´ÎÅäÖÃVCµÄ»·¾³£¬½«PROCµÄ.H£¬.LIBµÄ·¾¶¼ÓÈëDERECTIRY¡£Ð´Ò»¸öPCÎļþ£¬¼´PROCÎļþ¡£·Åµ½¹¤³ÌÏàÓ¦µÄĿ¼Ï¡£È»ºó°ÑPCÎļþ¼ÓÈ빤³Ì¡£Ê¹ÓÃPROCUI.EXE±àÒë³ÉCÔ´Îļþ¡£
Ñ¡ÔñOraSQL8.LIBÎļþ£¬µ¥»÷“´ò¿ª”Å¥£¬Íê³É½«ÔËÐпâÎļþ¼ÓÈ빤³Ì¡£
×îºó°ÑCÎļþ¼ÓÈ빤³Ì¡£¡¡
¸ÅÊö
¡¡¡¡ÔÚVisual
C++Ï¿ª·¢Oracle¿â½Ó¿ÚÖ÷ÒªÓÐÁ½ÖÖ·½·¨¡£Ò»ÖÖ·½·¨ÊÇÀûÓÃVisual
C++ÌṩµÄ¶àÖÖÊý¾Ý¿â·ÃÎʼ¼Êõ£¬È翪·ÅÊý¾Ý¿âÁ¬½ÓODBC¡¢Êì¾Ý´æÈ¡¶ÔÏóDAO¡¢¶ÔÏóÁ¬½ÓºÍǶÈëÊý¾Ý¿âOLE
DBºÍActiveXÊý¾Ý¶ÔÏóADOµÈ¡£ÁíÒ»ÖÖ·½·¨ÊÇÔÚVisual
C++ÖÐǶÈëSQLÓï¾ä£¬Õâ¾ÍÊÇËùÖ¸µÄPro*C/C++£¨±¾Îļò³ÆPROC£©¡£Ç°Ò»ÖÖ·½·¨ÓÉÓÚÓÐMFC
Ç¿´óµÄÀà¿âÖ§³Ö£¬ÊìϤVC±à³ÌʱÔòʵÏÖ·½±ã£¬ÇÒ¿ÉÒÆÖ²ÐÔÇ¿£»µ«ÊÇ£¬ÓëPROC
Ïà±È£¬Ó¦ÓóÌÐòÐèÒª¾¹ýÁ½²ã²ÅÄܺÍÊý¾Ý¿âͨÐŽӿڽ¨Á¢ÁªÏµ£¬±à³ÌÏà¶Ô¸´ÔÓ£¬Ö´ÐÐЧÂÊÏà¶Ô½ÏµÍ¡£PROCÖ§³ÖǶÈëʽPL/SQL ¿éµÈÖ±½Óµ÷ÓÃOracle
¿â£¬½«¹ý³Ì»¯ÓïÑԺͷǹý³Ì»¯ÓïÑÔÏà½áºÏ£¬ÐγÉÒ»ÖÖ¸üÇ¿µÄ¿ª·¢¹¤¾ß£¬¿É¿ª·¢³öÂú×ã¸÷ÖÖ¸ ......
1.1 ±äÁ¿×÷ÓÃÓò
1.1.1 ¼¸ÖÖ³£¼ûÀàÐͱäÁ¿µÄ×÷ÓÃÓò
×÷ÓÃÓò£¨scope£©»òÕ߿ɼûÐÔÊÇÖ¸±äÁ¿ÔÚ³ÌÐòÄڵĿɼûºÍ¿ÉÒýÓõķ¶Î§¡£
±ÈÈç:
1¡¢ È«¾Ö±äÁ¿ÔÚËùÓеÄÎļþ¶¼¿É¼û£¬ÄÇËûµÄ×÷ÓÃÓò¾ÍÊÇËùÓÐÎļþ£»
2¡¢ static¶¨ÒåµÄÈ«¾Ö±äÁ¿£¬Ö»ÔÚ¶¨ÒåËüµÄÔ´ÎļþÖпɼû£¬ÄÇËûµÄ×÷ÓÃÓò¾ÍÊÇÆäËùÔÚµÄÔ´Îļþ£»
3¡¢ º¯ÊýÄÚ²¿µÄ¾Ö²¿±äÁ¿£¬Ö»ÔÚÆäº¯Êý·¶Î§Äڿɼû£»
4¡¢ ÓÐЩ±äÁ¿£¬Ö»ÔÚijһ¿é´úÂë¶ÎÄڿɼû£¨»¨À¨ºÅÀ¨ÆðÀ´µÄÒ»¶Î´úÂ룩£»
void test_fun()
{
int test_i = 0;
test_i = 10;
if (test_i != 0)
{
int test_count = 15;
test_i = test_count;
}
test_i = test_count;//ÕâÀï»á±àÒë³ö´í£¬ÒòΪtest_countÖ»ÔÚifÌõ¼þµÄ»¨À¨ºÅÖÐÓÐЧ¡£
}
1.1.2 ±äÁ¿Ê¹Óõĸ߼¶»°Ìâ
ÏÂÃæ´ó²¿·ÖÄÚÈÝÀ´×Ô¡¶´úÂë´óÈ«¡·¡£
1.1.2.1 ʹ±äÁ¿ÒýÓþֲ¿»¯
¡¶´úÂë´óÈ«¡·Õâ±¾Êé½éÉÜÁ˹¥»÷´°¿ÚµÄ¸ÅÄ½éÓÚͬһ¸ö±äÁ¿¶à¸öÒýÓõãÖ®¼äµÄ´úÂë¿É³ÉΪ¹¥»÷´°¿Ú£¬ÔÚÕâ¸ö´°¿ÚÖÐÐÂÔö´úÂ룬¿ÉÄܻ᲻µ±µÄÐ޸Ĵ˱äÁ¿¡£
Ò»°ã¶øÑÔ£¬°Ñ¶ÔÒ»¸ö±äÁ¿µÄÒýÓþֲ¿»¯£¬¼´°ÑÒýÓõ㾡¿ÉÄܼ¯ÖÐÔÚÒ»Æð×ÜÊÇÒ»ÖֺܺõÄ×ö·¨¡£Ö÷ÒªµÄºÃ´¦ÊÇÌá¸ß³ÌÐòµÄ¿É¶ÁÐԺͿÉά»¤ÐÔ¡£Èç¹û±äÁ¿µÄÒýÓõ㶼ºÜ¼¯ÖУ¬ÔòÔĶÁ´úÂëµÄʱºò£¬Ö»Òª¹Ø×¢ÕâÒ»¿é´úÂë¾Í¿ ......
Ô¤´¦ÀíÆ÷£¨Preprocessor£©
¡¡
¡¡¡¡1 . ÓÃÔ¤´¦ÀíÖ¸Áî#define ÉùÃ÷Ò»¸ö³£Êý£¬ÓÃÒÔ±íÃ÷1ÄêÖÐÓжàÉÙÃ루ºöÂÔÈòÄêÎÊÌ⣩
¡¡
¡¡¡¡#define SECONDS_PER_YEAR £¨60 * 60 * 24 * 365£©
¡¡
¡¡¡¡ÎÒÔÚÕâÏë¿´µ½¼¸¼þÊÂÇ飺
¡ï¡£#define Óï·¨µÄ»ù±¾ÖªÊ¶£¨ÀýÈ磺²»ÄÜÒԷֺŽáÊø£¬À¨ºÅµÄʹÓ㬵ȵȣ©
¡¡
¡¡¡¡¡ï¡£¶®µÃÔ¤´¦ÀíÆ÷½«ÎªÄã¼ÆËã³£Êý±í´ïʽµÄÖµ£¬Òò´Ë£¬Ö±½Óд³öÄãÊÇÈçºÎ¼ÆËãÒ»ÄêÖÐÓжàÉÙÃë¶ø²»ÊǼÆËã³öʵ¼ÊµÄÖµ£¬ÊǸüÇåÎú¶øÃ»Óдú¼ÛµÄ¡£
¡¡
¡¡¡¡¡ï¡£Òâʶµ½Õâ¸ö±í´ïʽ½«Ê¹Ò»¸ö16λ»úµÄÕûÐÍÊýÒç³ö-Òò´ËÒªÓõ½³¤ÕûÐÍ·ûºÅL£¬¸æËß±àÒëÆ÷Õâ¸ö³£ÊýÊǵij¤ÕûÐÍÊý¡£
¡¡
¡¡¡¡¡ï¡£Èç¹ûÄãÔÚÄãµÄ±í´ïʽÖÐÓõ½UL£¨±íʾÎÞ·ûºÅ³¤ÕûÐÍ£©£¬ÄÇôÄãÓÐÁËÒ»¸öºÃµÄÆðµã¡£¼Çס£¬µÚÒ»Ó¡ÏóºÜÖØÒª¡£
¡¡
¡¡¡¡2 . дһ¸ö“±ê×¼”ºêMIN £¬Õâ¸öºêÊäÈëÁ½¸ö²ÎÊý²¢·µ»Ø½ÏСµÄÒ»¸ö¡£
¡¡
¡¡¡¡#define MIN£¨A£¬B£© £¨£¨A£© <= £¨B£© £¿ £¨A£© £º £¨B£©£©
¡¡
¡¡¡¡Õâ¸ö²âÊÔÊÇΪÏÂÃæµÄÄ¿µÄ¶øÉèµÄ£º
¡ï¡£±êʶ#defineÔÚºêÖÐÓ¦ÓõĻù±¾ÖªÊ¶¡£ÕâÊǺÜÖØÒªµÄ£¬ÒòΪֱµ½Ç¶È루inline£©²Ù×÷·û±äΪ±ê×¼CµÄÒ»²¿·Ö£¬ºêÊÇ·½±ã²úÉúǶÈë´úÂëµÄΨһ·½·¨£¬¶ÔÓ ......