c ÄÚ´æ¶ÔÆë
µ±ÔÚC Öж¨ÒåÁËÒ»¸ö½á¹¹ÀàÐÍʱ£¬ËüµÄ´óСÊÇ·ñµÈÓÚ¸÷×Ö¶Î(field) ´óС֮ºÍ£¿±àÒëÆ÷½«ÈçºÎÔÚÄÚ´æÖзÅÖÃÕâЩ×ֶΣ¿ANSI C¶Ô½á¹¹ÌåµÄÄÚ´æ²¼¾ÖÓÐʲôҪÇ󣿶øÎÒÃǵijÌÐòÓÖÄÜ·ñÒÀÀµÕâÖÖ²¼¾Ö£¿ÕâЩÎÊÌâ»òÐí¶Ô²»ÉÙÅóÓÑÀ´Ëµ»¹ÓеãÄ£ºý£¬ÄÇô±¾ÎľÍÊÔ×Å̽¾¿ËüÃDZ³ºóµÄÃØÃÜ¡£
Ê×ÏÈ£¬ÖÁÉÙÓÐÒ»µã¿ÉÒԿ϶¨£¬ÄǾÍÊÇANSI C ±£Ö¤½á¹¹ÌåÖи÷×Ö¶ÎÔÚÄÚ´æÖгöÏÖµÄλÖÃÊÇËæËüÃǵÄÉùÃ÷˳ÐòÒÀ´ÎµÝÔöµÄ£¬²¢ÇÒµÚÒ»¸ö×ֶεÄÊ×µØÖ·µÈÓÚÕû¸ö½á¹¹ÌåʵÀýµÄÊ×µØÖ·¡£±ÈÈçÓÐÕâÑùÒ»¸ö½á¹¹Ì壺
struct vector
{int x,y,z;} s;
int *p,*q,*r;
struct vector *ps;
p = &s.x;
q = &s.y;
r = &s.z;
ps = &s;
assert(p < q);
assert(p < r);
assert(q < r);
assert((int*)ps == p);
// ÉÏÊö¶ÏÑÔÒ»¶¨²»»áʧ°Ü
Õâʱ£¬ÓÐÅóÓÑ¿ÉÄÜ»áÎÊ:" ±ê×¼ÊÇ·ñ¹æ¶¨ÏàÁÚ×Ö¶ÎÔÚÄÚ´æÖÐÒ²ÏàÁÚ?" ¡£ ßí£¬¶Ô²»Æð£¬ANSI C ûÓÐ×ö³ö±£Ö¤£¬ÄãµÄ³ÌÐòÔÚÈκÎʱºò¶¼²»Ó¦¸ÃÒÀÀµÕâ¸ö¼ÙÉè¡£ÄÇÕâÊÇ·ñÒâζ×ÅÎÒÃÇÓÀÔ¶ÎÞ·¨¹´ÀÕ³öÒ»·ù¸üÇåÎú¸ü¾«È·µÄ½á¹¹ÌåÄÚ´æ²¼¾Öͼ£¿Å¶£¬µ±È»²»ÊÇ¡£²»¹ýÏÈÈÃÎÒÃÇ´ÓÕâ¸öÎÊÌâÖÐÔÝʱ³éÉí£¬¹Ø×¢Ò»ÏÂÁíÒ»¸öÖØÒªÎÊÌâ————ÄÚ´æ¶ÔÆë¡£
Ðí¶àʵ¼ÊµÄ¼ÆËã»úϵͳ¶Ô»ù±¾ÀàÐÍÊý¾ÝÔÚÄÚ´æÖдæ·ÅµÄλÖÃÓÐÏÞÖÆ£¬ËüÃÇ»áÒªÇóÕâЩÊý¾ÝµÄÊ×µØÖ·µÄÖµÊÇij¸öÊýk( ͨ³£ËüΪ4 »ò8) µÄ±¶Êý£¬Õâ¾ÍÊÇËùνµÄÄÚ´æ¶ÔÆ룬¶øÕâ¸ök Ôò±»³ÆΪ¸ÃÊý¾ÝÀàÐ͵ĶÔÆëÄ£Êý(alignment modulus) ¡£µ±Ò»ÖÖÀàÐÍS µÄ¶ÔÆëÄ£ÊýÓëÁíÒ»ÖÖÀàÐÍT µÄ¶ÔÆëÄ£ÊýµÄ±ÈÖµÊÇ´óÓÚ1 µÄÕûÊý£¬ÎÒÃǾͳÆÀàÐÍS µÄ¶ÔÆëÒªÇó±ÈT Ç¿( Ñϸñ) £¬¶ø³ÆT ±ÈS Èõ( ¿íËÉ) ¡£ÕâÖÖÇ¿ÖƵÄÒªÇóÒ»À´¼ò»¯ÁË´¦ÀíÆ÷ÓëÄÚ´æÖ®¼ä´«ÊäϵͳµÄÉè¼Æ£¬¶þÀ´¿ÉÒÔÌáÉý¶ÁÈ¡Êý¾ÝµÄËٶȡ£±ÈÈçÕâôһÖÖ´¦ÀíÆ÷£¬Ëüÿ´Î¶ÁдÄÚ´æµÄʱºò¶¼´Óij¸ö8 ±¶ÊýµÄµØÖ·¿ªÊ¼£¬Ò»´Î¶Á³ö»òдÈë8 ¸ö×Ö½ÚµÄÊý¾Ý£¬¼ÙÈçÈí¼þÄܱ£Ö¤double ÀàÐ͵ÄÊý¾Ý¶¼´Ó8 ±¶ÊýµØÖ·¿ªÊ¼£¬ÄÇô¶Á»òдһ¸ödouble ÀàÐÍÊý¾Ý¾ÍÖ»ÐèÒªÒ»´ÎÄÚ´æ²Ù×÷¡£·ñÔò£¬ÎÒÃǾͿÉÄÜÐèÒªÁ½´ÎÄÚ´æ²Ù×÷²ÅÄÜÍê³ÉÕâ¸ö¶¯×÷£¬ÒòΪÊý¾Ý»òÐíÇ¡ºÃºá¿çÔÚÁ½¸ö·ûºÏ¶ÔÆëÒªÇóµÄ8 ×Ö½ÚÄÚ´æ¿éÉÏ¡£Ä³Ð©´¦ÀíÆ÷ÔÚÊý¾Ý²»Âú×ã¶ÔÆëÒªÇóµÄÇé¿öÏ¿ÉÄÜ»á³ö´í£¬µ«ÊÇIntel µÄIA32 ¼Ü¹¹µÄ´¦ÀíÆ÷Ôò²»¹ÜÊý¾ÝÊÇ·ñ¶ÔÆ붼ÄÜÕýÈ·¹¤×÷¡£²»¹ýIntel ·îÈ°´ó¼Ò£¬Èç¹ûÏëÌáÉýÐÔÄÜ£¬ÄÇôËùÓеijÌÐòÊý¾Ý¶¼Ó¦¸Ã¾¡¿ÉÄܵضÔÆë¡£Win32 ƽ̨ϵÄ΢ÈíC ±àÒëÆ÷(cl.exe for 80x86) ÔÚĬÈÏÇé¿öϲÉÓÃÈçϵĶÔÆë¹æÔò: Èκλù±¾Êý¾ÝÀàÐÍT µÄ¶ÔÆëÄ£Êý¾ÍÊÇT µÄ´óС£¬¼´s
Ïà¹ØÎĵµ£º
µ±½ñÓÐÐí¶àÃâ·ÑµÄ RDBMS£¨Relational Database Management
System£¬¹ØϵÊý¾Ý¿â¹ÜÀíϵͳ£©£¬ÆäÖÐһЩÊÇ¿ª·ÅÔ´ÂëÈí¼þ£¬ÁíһЩÊÇÉÌÒµ³§ÉÌÌṩµÄÃâ·Ñ²úÆ·¡£Èç¹ûÄúÕýÔÚʹÓà C/C++¡¢Java™¡¢.NET
»ò PHP
¿ª·¢Ó¦ÓóÌÐò£¬ÏëÑ°ÕÒÒ»ÖÖ¿É¿¿µÄÊý¾Ý·þÎñÆ÷£¬Ï£ÍûËüÖ§³ÖÏȽøµÄ¼¼Êõ¡¢¾ßÓ⻶ÏÀ©´óµÄ¿ª·¢ÈËÔ±ÉçÇø²¢ÒѾ²¿ÊðÔÚÐí¶à¹Ø¼ ......
Õ⼸ÌìÔÚʹÓÃÓÃCд¸öÏîÄ¿×éµÄ×Ô¶¯»¯²âÊÔ¹¤¾ßÀàËÆCGI³ÌÐò£¬µÚÒ»¸öÓöµ½µÄÎÊÌâ¾ÍÊDZàÂëÁË¡£
0~9 a~z A¡«ZÕâЩ×Ö·ûÊDz»»á±»±àÂëµÄ£¬µ«ÊDZÈÈçһЩÌØÊâ×Ö·û»òÊÇÖÐÎÄ£¬post»ògetÊý¾Ýʱ£¬»á¶ÔÊý¾Ý×Ô¶¯½øÐбàÂ룬±ÈÈ纺×Ö'ÖÐ',Èç¹ûÒ³Ãæ²ÉÓõÄÊÇgb2312±àÂ룬'ÖÐ'×ֻᱻ±àÂëΪ'%D6%D0'£¬ºöÂÔ'%'±êʶ,Á½¸öÊ®Áù½øÖÆÊý£¬¼´0xD6,0xD0£¬Áù¸ ......
´æ´¢ÆÚstorage duration(extent)£¬ ָΪ¶ÔÏóÅäÖõÄÄÚ´æµÄ´æ»îÆÚ£¬±ÈÈçlocal extent
Éú´æ¿Õ¼äscope£¬Ö¸¶ÔÏóÔÚ³ÌÐòÄڵĴæ»îÇøÓò£¬¼´¿É±»·ÃÎʵķ¶Î§£¬±ÈÈçfile scope, static scope, local scope
C
local static object
º¯ÊýÄÚ²¿µÄobject£¬¾ßÓÐlocal scope£¬µ«ÊÇÿ´Îº¯Êý±»µ÷Óúó¸Ã¶ÔÏóµÄÄÚ´æ²»ÇåÀí£¬µ½Ï´ε÷Óû¹±£ ......
½ñÌì²Î¼Ó±ÊÊÔ,ÆäÖÐÓÐÁ½ÌâÊÇ·ÖÅäÄÚ´æµÄ,µÚÒ»ÌâÊǶ¯Ì¬·ÖÅäÒ»¸öһάÊý×é,µÚ¶þ¸öÌâÊǶ¯Ì¬·ÖÅäÒ»¸ö¶þάÊý×é.µÚÒ»ÌâºÍµÚ¶þÌâÎÒ·Ö±ðÊÇÕâÑùдµÄ:
/*µÚÒ»Ìâ*/
p=(float*)malloc(sizeof(float[M]));
/*µÚ¶þÌâ*/
p=(float*)malloc(sizeof(int[M][N]));
½á¹û˵ÎÒµÚ¶þÌâ´íÁË,ÎÒ»¹²»Ã÷°×´íÄÄÁË,ÎÒÓÖÎÊд³ÉM*N¶Ô²»,½á¹û»¹ÊÇ˵²»¶Ô.¸Õ² ......
Õ⼸ÌìÓÉÓÚÒª¶ÁÈ¡½Ï´óµÄÎı¾Îļþ£¬ËùÒԾͱȽÏÁËÒ»ÏÂÁ½ÕßÖ®¼äµÄЧÂÊÎÊÌâ¡£ ËùÒª¶ÁÈ¡µÄÎı¾Îļþ½á¹¹ÎªÃ¿ÐÐÓÉ5¸öÊý×é³É£¬int int int float int£¬²âÊÔµÄÎļþÓÐ33WÐУ¬´óСΪ9M¡£ÏÖÔÚÒª½«Æä¶Áµ½Ò»¸öcube½á¹¹ÌåÀïÃæÈ¥£¬½á¹¹ÌåÓÐ5¸ö³ÉÔ±±äÁ¿ÓëÖ®¶ÔÓ¦¡£ Á½ÖÖ²Ù×÷µÄ´úÂëÈçÏ start = clock();
......