C/C++Öеĺ¯Êý²ÎÊý´«µÝ»úÖÆ(×ªÔØ)
Ò»¡¢ º¯Êý²ÎÊý´«µÝ»úÖÆµÄ»ù±¾ÀíÂÛ ¡¡¡¡º¯Êý²ÎÊý´«µÝ»úÖÆÎÊÌâÔÚ±¾ÖÊÉÏÊǵ÷Óú¯Êý£¨¹ý³Ì£©ºÍ±»µ÷Óú¯Êý£¨¹ý³Ì£©ÔÚµ÷Ó÷¢Éúʱ½øÐÐͨÐŵķ½·¨ÎÊÌâ¡£»ù±¾µÄ²ÎÊý´«µÝ»úÖÆÓÐÁ½ÖÖ£ºÖµ´«µÝºÍÒýÓô«µÝ¡£ÒÔÏÂÌÖÂ۳Ƶ÷ÓÃÆäËûº¯ÊýµÄº¯ÊýΪÖ÷µ÷º¯Êý£¬±»µ÷Óõĺ¯ÊýΪ±»µ÷º¯Êý¡£¡¡¡¡Öµ´«µÝ£¨passl-by-value£©¹ý³ÌÖУ¬±»µ÷º¯ÊýµÄÐÎʽ²ÎÊý×÷Ϊ±»µ÷º¯ÊýµÄ¾Ö²¿±äÁ¿´¦Àí£¬¼´ÔÚ¶ÑÕ»Öпª±ÙÁËÄÚ´æ¿Õ¼äÒÔ´æ·ÅÓÉÖ÷µ÷º¯Êý·Å½øÀ´µÄʵ²ÎµÄÖµ£¬´Ó¶ø³ÉΪÁËʵ²ÎµÄÒ»¸ö¸±±¾¡£Öµ´«µÝµÄÌØµãÊDZ»µ÷º¯Êý¶ÔÐÎʽ²ÎÊýµÄÈκβÙ×÷¶¼ÊÇ×÷Ϊ¾Ö²¿±äÁ¿½øÐУ¬²»»áÓ°ÏìÖ÷µ÷º¯ÊýµÄʵ²Î±äÁ¿µÄÖµ¡£¡¡¡¡ÒýÓô«µÝ(pass-by-reference)¹ý³ÌÖУ¬±»µ÷º¯ÊýµÄÐÎʽ²ÎÊýËäȻҲ×÷Ϊ¾Ö²¿±äÁ¿ÔÚ¶ÑÕ»Öпª±ÙÁËÄÚ´æ¿Õ¼ä£¬µ«ÊÇÕâʱ´æ·ÅµÄÊÇÓÉÖ÷µ÷º¯Êý·Å½øÀ´µÄʵ²Î±äÁ¿µÄµØÖ·¡£±»µ÷º¯Êý¶ÔÐβεÄÈκβÙ×÷¶¼±»´¦Àí³É¼ä½ÓѰַ£¬¼´Í¨¹ý¶ÑÕ»Öдæ·ÅµÄµØÖ··ÃÎÊÖ÷µ÷º¯ÊýÖеÄʵ²Î±äÁ¿¡£ÕýÒòΪÈç´Ë£¬±»µ÷º¯Êý¶ÔÐβÎ×öµÄÈκβÙ×÷¶¼Ó°ÏìÁËÖ÷µ÷º¯ÊýÖеÄʵ²Î±äÁ¿¡£
¶þ¡¢ CÓïÑÔÖеĺ¯Êý²ÎÊý´«µÝ»úÖÆ ¡¡¡¡ÔÚCÓïÑÔÖУ¬Öµ´«µÝÊÇΨһ¿ÉÓõIJÎÊý´«µÝ»úÖÆ¡£µ«ÊǾݱÊÕßËùÖª£¬ÓÉÓÚÊÜÖ¸Õë±äÁ¿×÷Ϊº¯Êý²ÎÊýµÄÓ°Ï죬ÓÐÐí¶àÅóÓÑ»¹ÈÏΪÕâÖÖÇé¿öÊÇÒýÓô«µÝ¡£ÕâÊÇ´íÎóµÄ¡£Çë¿´ÏÂÃæµÄ´úÂ룺 int swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; return temp; } void main() { int a = 1, b = 2; int *p1 = &a; int *p2 = &b; swap(p1, p2) } ¡¡¡¡º¯ÊýswapÒÔÁ½¸öÖ¸Õë±äÁ¿×÷Ϊ²ÎÊý£¬µ±main()µ÷ÓÃswapʱ£¬ÊÇÒÔÖµ´«µÝµÄ·½Ê½½«Ö¸Õë±äÁ¿p1¡¢p2µÄÖµ£¨Ò²¾ÍÊDZäÁ¿a¡¢bµÄµØÖ·£©·ÅÔÚÁËswapÔÚ¶ÑÕ»ÖÐΪÐÎʽ²ÎÊýx¡¢y¿ª±ÙµÄÄÚ´æµ¥ÔªÖС£ÕâÒ»µã´ÓÒÔϵĻã±à´úÂë¿ÉÒÔ¿´³ö£¨×¢ÊÍÊDZÊÕ߼ӵģ©£º 22: void main() 23: { …… …… 13: int a = 1, b = 2; 00401088 mov dword ptr [ebp-4],1 0040108F mov dword ptr [ebp-8],2 14: int *p1 = &a; 00401096 lea eax,[ebp-4] 00401099 mov dword ptr [ebp-0Ch],eax 15: int *p2 = &b; 0040109C lea ecx,[ebp-8] 0040109F mov dword ptr [ebp-10h],ecx 16: swap(p1, p2); 004010A2 mov edx,dword ptr [ebp-10h] £»²ÎÊýp2µÄÖµ½øÕ» 004010A5 push edx 004010A6 mov eax,dword ptr [ebp-0Ch] £»²ÎÊýp1µÄÖµ½øÕ» 004010A9 push eax 004010AA call @ILT+15(swap) (00401014) £»µ÷ÓÃswapº¯Êý 004010AF add esp,8 £»ÇåÀí¶ÑÕ»ÖеIJÎÊý 17: } ¡¡¡¡ÔĶÁÉÏÊö´úÂëҪעÒ⣬INTEL8
Ïà¹ØÎĵµ£º
ÓÃcÓïÑÔ×öÁ˸öͨѶ¼£¬ÏµÍ³Ò»ÔËÐÐʱ±ã½«Êý¾ÝÎļþ¼ÓÔØ½øÄڴ棬²¢ÓÃÁ´±í´æ´¢¡£Í˳öϵͳʱ£¬×Ô¶¯½«Á´±íÖеÄËùÓнڵãÔÙ´æÈëÎļþ¡£
¿ÉÊÇÏÖÔÚ£¬Ã¿´ÎÍ˳öϵͳ£¬ÎļþÀï¶¼»á±ÈÁ´±í¶à´æ´¢Ò»Ìõ¼Ç¼¡£
È磺ÏÖÔÚÖ»ÓÐÁ½Ìõ¼Ç¼£¬Í˳öºóÔÚÆô¶¯Ê±Ò»²éѯ£¬¾Í»á¶àÒ»ÌõÂҼǼ£¨ÏµÍ³×Ô¼º¼ÓµÄ£©¡£
¼ÓÔØÎļþµÄ²¿·Ö´úÂëÈçÏ£º
/*ÅжÏÎļþÊÇ·ñ ......
1,·ÀÖ¹Ò»¸öÍ·Îļþ±»Öظ´°üº¬
#ifndef COMDEF_H
#define COMDEF_H
//Í·ÎļþÄÚÈÝ
#endif
2,ÖØÐ¶¨ÒåһЩÀàÐÍ,·ÀÖ¹ÓÉÓÚ¸÷ÖÖÆ½Ì¨ºÍ±àÒëÆ÷µÄ²»Í¬,¶ø²úÉúµÄÀàÐÍ×Ö½ÚÊý²îÒì,·½±ãÒÆÖ²¡£
typedef unsigned char boolean; /* Boolean value type. */
typedef ......
1.Çø±ð(Ö÷ÒªµÄ):Ö¸ÕëÐèÒªÔö¼ÓÒ»´Î¶îÍâµÄÌáÈ¡²Ù×÷
±àÒëÆ÷Ϊÿ¸ö±äÁ¿·ÖÅäÒ»¸öµØÖ·(×óÖµ)¡£Õâ¸öµØÖ·±àÒëʱ¿ÉÖª£¬¶øÇҸñäÁ¿ÔÚÔËÐÐʱһֱ±£´æÓÚÕâ¸öµØÖ·¡£Ïà·´£¬´æ´¢ÓÚ±äÁ¿ÖеÄÖµ(ËüµÄÓÒÖµ)Ö»ÓÐÔÚÔËÐÐʱ²Å¿ÉÖª¡£Èç¹ûÐèÒªÓõ½±äÁ¿Öд洢µÄÖµ£¬±àÒëÆ÷¾Í·¢³öÖ¸Áî´ÓµØÖ·¶ÁÈë±äÁ¿Öµ²¢½«Ëü´æÓڼĴæÆ÷ÖС£
  ......
±¾ÎĵÄÄÚÈÝÊÇ Win32 API£¨ÌرðÊǽø³Ì¡¢Ï̺߳͹²ÏíÄÚ´æ·þÎñ£©µ½ POWER ÉÏ Linux µÄÓ³Éä¡£±¾ÎÄ¿ÉÒÔ°ïÖúÄúÈ·¶¨ÄÄÖÖÓ³Éä·þÎñ×îÊʺÏÄúµÄÐèÒª¡£×÷ÕßÏòÄúÏêϸ½éÉÜÁËËûÔÚÒÆÖ² Win32 C/C++ Ó¦ÓóÌÐòʱÓöµ½µÄ API Ó³Éä¡£
¸ÅÊö
Óкܶ෽ʽ¿ÉÒÔ½« Win32 C/C++ Ó¦ÓóÌÐòÒÆÖ²ºÍÇ¨ÒÆµ½ pSeries ƽ̨¡£Äú¿ÉÒÔʹÓÃÃâ·ÑÈí¼þ»òÕßµÚÈý·½¹¤¾ßÀ´ ......
ÒÔÇ°Ôø¾×ܽá¹ýһƪ(http://www.cppblog.com/franksunny/archive/2007/11/29/37510.html
)£¬¹ØÓÚÔÚ
C
ÖÐÈçºÎµ÷ÓÃ
C++
µÄ´úÂ룬µ±Ê±²¢Î´×öÍêÈ«µÄÕ¹¿ª£¬Ö»ÊǼòµ¥µÄ×öÁËϵ÷ÊÔ£¬×î½ü¿´µ½Ò»¸öÌâĿҪÇóʵÏÖ
C
ºÍ
C++
ÖдúÂëµÄ»¥Ïàµ÷Óã¬Æä½á¹ûËäÈ»¶¼ÊÇͨ¹ý
extern “C”
À´ÊµÏÖ
£¬µ«ÊǾßÌ廹ÊÇÓÐЩ²î±ðµÄ¡ ......