Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Ò»¸öC³ÌÐòµÄÄÚ´æ²¼¾Ö(memory layout)

Ò»¸öC³ÌÐòµÄÄÚ´æ²¼¾Ö(memory layout)
2009-09-09 15:19
Ò»¸öC³ÌÐòÒ»Ö±ÒÔÀ´¶¼ÊÇÓÉÒÔÏÂ5¸ö¶Î(pieces)×é³É£º
´úÂë¶Î(text segment)£º´æ·ÅCPUÖ´ÐеĻúÆ÷Ö¸Áî(machine instructions)¡£Í¨³£Çé¿öÏ£¬´úÂë¶ÎÊǿɹ²ÏíµÄ£¬Ê¹Æä¿É¹²ÏíµÄÄ¿µÄÊǶÔÓÚÆµ·±±»Ö´ÐеijÌÐò£¬Ö»ÐèÒªÔÚÄÚ´æÖÐÓÐÒ»·Ý¿½±´¼´¿É£¬±ÈÈçÎı¾±à¼­Æ÷(text editors)£¬C±àÒëÆ÷£¬shellµÈµÈ¡£ÁíÍ⣬´úÂë¶ÎҲͨ³£ÊÇÖ»¶ÁµÄ£¬Ê¹ÆäÖ»¶ÁµÄÔ­ÒòÊÇ·ÀÖ¹Ò»¸ö³ÌÐòÒâÍâµØÐÞ¸ÄÁËËüµÄÖ¸Áî(prevent a program from accidentally modifying its instructions)¡£
³õʼ»¯Êý¾Ý¶Î/Êý¾Ý¶Î(initialized data segment/data segment):¸Ã¶Î°üº¬ÁËÔÚ³ÌÐòÖÐÃ÷È·±»³õʼ»¯µÄ±äÁ¿¡£ÀýÈ磬һ¸ö²»ÔÚÈκκ¯ÊýÄÚµÄCÉùÃ÷(C declaration)
int   maxcount = 99;
ʹµÃ±äÁ¿maxcount¸ù¾ÝÆä³õʼֵ±»´æ´¢µ½³õʼ»¯Êý¾Ý¶Î¡£
δ³õʼ»¯Êý¾Ý¶Î/bss¶Î(uninitialized data segment/"bss" segment):bssÕâ¸ö½Ð·¨ÊǸù¾ÝÒ»¸öÔçÆÚµÄ»ã±àÔËËã·û¶øÀ´£¬Õâ¸ö»ã±àÔËËã·û±êÖ¾×ÅÒ»¸ö¿éµÄ¿ªÊ¼(stood for "block started by symbol")¡£ÔÚ³ÌÐò¿ªÊ¼Ö´ÐÐ֮ǰ£¬bss¶ÎµÄÊý¾Ý±»kernel³õʼ»¯Îª0»òÕß¿ÕÖ¸Õë(null pointers)¡£Ò»¸ö²»ÔÚÈκκ¯ÊýÄÚµÄCÉùÃ÷
long sum[1000];
ʹµÃ±äÁ¿sum±»´æ´¢µ½Î´³õʼ»¯Êý¾Ý¶Î/bss¶ÎÖС£
Õ»¶Î(stack)£ºwhere automatic variables are stored, along with information that is saved each time a function is called. ÿ´Îµ±Ò»¸öº¯Êý±»µ÷Ó㬸ú¯ÊýµÄ·µ»ØµØÖ·ºÍһЩ¹ØÓÚcallerµÄÐÅÏ¢£¬±ÈÈçijЩ¼Ä´æÆ÷µÄÄÚÈÝ£¬½«±»Ê×ÏÈ´æ´¢µ½Õ»¶Î¡£È»ºóÕâ¸ö±»µ÷Óõĺ¯Êý(caller)ÔÙΪËüµÄ×Ô¶¯±äÁ¿ºÍÁÙʱ±äÁ¿(automatic and temporary variables)ÔÚÕ»¶ÎÉÏ·ÖÅä¿Õ¼ä¡£Õâ¾ÍÊÇCÈçºÎʵÏÖº¯ÊýµÄµÝ¹éµ÷Óá£Ã¿´ÎÒ»¸öµÝ¹éº¯Êýµ÷ÓÃÆä±¾Éí£¬Ò»¸öеÄÕ»¿ò¼Ü(stack frame)¾Í»á±»Ê¹Óã¬ÕâÑùÕâ¸öÐÂʵÀýÕ»ÀïµÄÒ»×é±äÁ¿¾Í²»»áºÍ¸Ãº¯ÊýµÄÁíÒ»¸öʵÀýÕ»ÀïÃæµÄ±äÁ¿»¥Ïà¸ÉÈÅ¡£
¶Ñ¶Î(heap)£ºÓÃÓÚ¶¯Ì¬ÄÚ´æ·ÖÅä(dynamic memory allocation)¡£Ò»Ö±ÒÔÀ´£¬¶ÑÔÚÄÚ´æÖеÄλÖÃÊǽéÓÚbss¶ÎºÍÕ»¶ÎÖ®¼ä¡£
ͼ7.6ÏÔʾÁËÕâ5¸ö¶ÎÔÚÄÚ´æÖеĵäÐÍÅÅÁС£ÕâÊÇÒ»ÕÅÂß¼­Í¼£¬±íʾÁËÒ»¸ö³ÌÐòÔÚÄÚ´æÖп´ÆðÀ´ÊÇÔõôÑùµÄ¡£¶ÔÓÚÒ»¸ö¸ø¶¨µÄʵÏÖ£¬Ã»ÓÐÇ¿ÖÆµÄÒªÇó˵±ØÐë°´ÕÕÕâÖÖ·½Ê½À´ÅÅÁÐÕâ5¸ö¶Î¡£È»¶ø£¬Õâ¸øÁËÎÒÃÇÒ»ÖÖµäÐ͵ıãÓÚÃèÊöµÄÅÅÁз½Ê½¡£ÔËÐÐÔÚIntel x86´¦ÀíÆ÷ÉϵÄlinux£¬´úÂë¶Î(text segment)´ÓµØÖ·0x08048000¿ªÊ¼(ÍùÉÏ)£¬Õ»µ×´ÓµØÖ·0xC0000000ÍùÏ£¨ÔÚÕâ¸öÌØ¶¨µÄ±íʾ½á¹¹ÖУ¬Õ»¶Î´Ó¸ßµØÖ·Ïòµ


Ïà¹ØÎĵµ£º

C#ÓëC++¡¢JAVAµÄÇø±ð


#(¶Á×ö "C sharp")ÊÇ΢Èí¹«Ë¾ÔÚÈ¥ÄêÁùÔ·¢²¼µÄÒ»ÖÖеıà³ÌÓïÑÔ,²¢¶¨ÓÚÔÚ΢ÈíÖ°Òµ¿ª·¢ÕßÂÛ̳(PDC)ÉϵÇ̨ÁÁÏà.C#ÊÇ΢Èí¹«Ë¾Ñо¿Ô±Anders HejlsbergµÄ×îгɹû.C#¿´ÆðÀ´ÓëJavaÓÐמªÈ˵ÄÏàËÆ;Ëü°üÀ¨ÁËÖîÈçµ¥Ò»¼Ì³Ð,½çÃæ,ÓëJava¼¸ºõͬÑùµÄÓï·¨,ºÍ±àÒë³ÉÖмä´úÂëÔÙÔËÐеĹý³Ì.µ«ÊÇC#ÓëJavaÓÐ×ÅÃ÷ÏԵIJ»Í¬,Ëü½è¼øÁËDelphiµÄÒ»¸ ......

C Sharp ÈëÃÅ£¨¶þ£©±äÁ¿

ÏÈѧVB£¬ÔÙѧC#¡£Ñ§ºÃÁËC#ѧC++¾Í²»ÔÚ»°ÏÂÁË£¡
 
»¹ÊÇÏÈÔÚCSÖн¨Á¢Ò»¸ö¿ØÖÆÌ¨³ÌÐò£¬ÔÙ´ò¿ª“Program.cs”¡£
ÔÚ void_Main ÊäÈëÒÔÏ´úÂ룺
Õâ´Î´úÂë½Ï³¤£¬ÎҾͲ»¸ßÁÁÁË£¡
            double pp1;//¶¨Òå±äÁ¿
    &nb ......

PythonµÄC/C++À©Õ¹

  Python
µÄ
C/C++
À©Õ¹
                         
By phidoit@gmail.com
 
¿ÉÀ©Õ¹ÐÔÊÇ
Python
µÄÒ»´óÌØÉ«£¬Ò»·½Ã棬ÓÉÓÚ
Python
ÊǽâÊÍÖ´Ðеģ¬Õâµ¼ÖÂÔËÐÐËÙ ......

»ñÈ¡IPµÄC ´úÂë

»ñÈ¡IPµÄC ´úÂë #include<stdio.h> #include<winsock2.h> #pragma comment(lib,"ws2_32.lib") void CheckIP(void) //¶¨ÒåCheckIP£¨£©º¯Êý£¬ÓÃÓÚ»ñÈ¡±¾»úIPµØÖ· { WSADATA wsaData; char name[255]; //¶¨ÒåÓà ...
»ñÈ¡IPµÄC ´úÂë
#include<stdio.h>
#include<winsock2.h>
#pragma comment(li ......

cÏÝÚåÓëȱÏÝѧϰ±Ê¼Ç

http://c.chinaitlab.com/c/basic/200907/789321.html
  ´Ê·¨ÏÝÚ壺
    1        = ²»Í¬ÓÚ£½£½²»ÒªÔÚ³ÌÐòÖн«Á½Õßд´í£¬Ð¡ÐÄ¡£½«±í´ïʽÓë³£Á¿±È½Ïʱ£¬¿É½«³£Á¿·ÅÔÚ×ó±ß¡£
    2        &ºÍ| ²»Í¬ÓÚ& ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ