¡¶Cר¼Ò±à³Ì¡·2.3CÓïÑÔÖеķûºÅÖØÔØ
CÓïÑÔÖÐÐí¶à·ûºÅÊDZ»“ÖØÔØ”µÄ£¬ÓÐЩ¹Ø¼ü×ÖÒ²±»ÖØÔضø¾ßÓкü¸ÖÖÒâÒ壬ֵµÃ×¢ÒâµÄ¼¸¸ö·ûºÅÈçÏ£º
·ûºÅ ÒâÒå
static ÔÚº¯ÊýÄÚ²¿£¬±íʾ¸Ã±äÁ¿µÄÖµÔÚ¸÷¸öµ÷ÓüäÒ»Ö±±£³ÖÑÓÐøÐÔ
ÔÚº¯ÊýÕâÒ»¼¶£¬±íʾ¸Ãº¯ÊýÖ»¶Ô±¾Îļþ¿É¼û
extern ÓÃÓÚº¯Êý¶¨Ò壬±íʾȫ¾Ö¿É¼û£¨ÈßÓࣩ
ÓÃÓÚ±äÁ¿£¬±íʾËüÔÚÆäËûµØ·½¶¨Òå
void ×÷Ϊº¯ÊýµÄ·µ»ØÀàÐÍ£¬±íʾ²»·µ»ØÈκÎÖµ
ÔÚÖ¸ÕëÉùÃ÷ÖУ¬±íʾͨÓÃÖ¸ÕëµÄÀàÐÍ
λÓÚ²ÎÊýÁбíÖУ¬±íʾûÓвÎÊý
¸½£º
CÖеÄstatic
static ÉùÃ÷µÄ±äÁ¿ÔÚCÓïÑÔÖÐÓÐÁ½·½ÃæµÄÌØÕ÷£º
1)¡¢±äÁ¿»á±»·ÅÔÚ³ÌÐòµÄÈ«¾Ö´æ´¢ÇøÖУ¬ÕâÑù¿ÉÒÔÔÚÏÂÒ»´Îµ÷ÓõÄʱºò»¹¿ÉÒÔ±£³ÖÔÀ´µÄ¸³Öµ¡£ÕâÒ»µãÊÇËüÓë¶ÑÕ»±äÁ¿ºÍ¶Ñ±äÁ¿µÄÇø±ð¡£
2)¡¢±äÁ¿ÓÃstatic¸æÖª±àÒëÆ÷£¬×Ô¼º½ö½öÔÚ±äÁ¿µÄ×÷Ó÷¶Î§Äڿɼû¡£ÕâÒ»µãÊÇËüÓëÈ«¾Ö±äÁ¿µÄÇø±ð¡£
¹ØÓÚstatic±äÁ¿£¬ÇëÑ¡ÔñÏÂÃæËùÓÐ˵·¨ÕýÈ·µÄÄÚÈÝ£º
A¡¢ÈôÈ«¾Ö±äÁ¿½öÔÚµ¥¸öCÎļþÖзÃÎÊ£¬Ôò¿ÉÒÔ½«Õâ¸ö±äÁ¿ÐÞ¸ÄΪ¾²Ì¬È«¾Ö±äÁ¿£¬ÒÔ½µµÍÄ£¿é¼äµÄñîºÏ¶È£»
B¡¢ÈôÈ«¾Ö±äÁ¿½öÓɵ¥¸öº¯Êý·ÃÎÊ£¬Ôò¿ÉÒÔ½«Õâ¸ö±äÁ¿¸ÄΪ¸Ãº¯ÊýµÄ¾²Ì¬¾Ö²¿±äÁ¿£¬ÒÔ½µµÍÄ£¿é¼äµÄñîºÏ¶È£»
C¡¢Éè¼ÆºÍʹÓ÷ÃÎʶ¯Ì¬È«¾Ö±äÁ¿¡¢¾²Ì¬È«¾Ö±äÁ¿¡¢¾²Ì¬¾Ö²¿±äÁ¿µÄº¯Êýʱ£¬ÐèÒª¿¼ÂÇÖØÈëÎÊÌâ
D¡¢¾²Ì¬È«¾Ö±äÁ¿¹ý´ó£¬¿ÉÄǻᵼÖ¶ÑÕ»Òç³ö¡£ (×)
´ð°¸Óë·ÖÎö£º
¶ÔÓÚA£¬B£º¸ù¾Ý±¾Æª¸ÅÊö²¿·ÖµÄ˵Ã÷b)£¬ÎÒÃÇÖªµÀ£¬A,B¶¼ÊÇÕýÈ·µÄ¡£
¶ÔÓÚC£º¸ù¾Ý±¾Æª¸ÅÊö²¿·ÖµÄ˵Ã÷a)£¬ÎÒÃÇÖªµÀ£¬CÊÇÕýÈ·µÄ£¨ËùνµÄº¯ÊýÖØÈëÎÊÌ⣬ÏÂÃæ»áÏêϸ²ûÊö£©¡£
¶ÔÓÚD£º¾²Ì¬±äÁ¿·ÅÔÚ³ÌÐòµÄÈ«¾ÖÊý¾ÝÇø£¬¶ø²»ÊÇÔÚ¶ÑÕ»ÖзÖÅ䣬ËùÒÔ²»¿ÉÄܵ¼Ö¶ÑÕ»Òç³ö£¬DÊÇ´íÎóµÄ¡£
Òò´Ë£¬´ð°¸ÊÇA¡¢B¡¢C¡£
ÎÊÌ⣺²»¿ÉÖØÈ뺯Êý
¡¡¡¡Ôø¾Éè¼Æ¹ýÈçÏÂÒ»¸öº¯Êý£¬ÔÚ´úÂë¼ìÊÓµÄʱºò±»ÌáÐÑÓÐbug£¬ÒòΪÕâ¸öº¯ÊýÊDz»¿ÉÖØÈëµÄ£¬ÎªÊ²Ã´£¿
unsigned int sum_int( unsigned int base )
{
¡¡unsigned int index;
¡¡static unsigned int sum = 0; // ×¢Ò⣬ÊÇstaticÀàÐ͵ġ£
¡¡for (index = 1; index <= base; index++)
¡¡{
¡¡¡¡sum += index;
¡¡}
¡¡return sum;
}
´ð°¸Óë·ÖÎö£º
¡¡¡¡ËùνµÄº¯ÊýÊÇ¿ÉÖØÈëµÄ£¨Ò²¿ÉÒÔ˵ÊÇ¿ÉÔ¤²âµÄ£©£¬¼´£ºÖ»ÒªÊäÈëÊý¾ÝÏàͬ¾ÍÓ¦²úÉúÏàͬµÄÊä³ö¡£
¡¡¡¡Õ
Ïà¹ØÎĵµ£º
CµÄÓÉÀ´
CÓïÑÔÊÇÓÉUNIXµÄÑÐÖÆÕßDennis RitchieºÍKen ThompsonÓÚ1970ÄêÑÐÖÆ³öµÄBÓïÑԵĻù´¡ÉÏ·¢Õ¹ºÍÍêÉÆÆðÀ´µÄ.
CµÄÌØµã
CÓïÑÔÊÇÒ»ÖÖÃæÏò¹ý³ÌµÄÓïÑÔ,ͬʱ¾ßÓлã±àÓïÑԺ͸߼¶ÓïÑÔµÄÓŵã.CÓïÑÔ¿ÉÒԹ㷺ӦÓÃÓÚ²»Í¬µÄ²Ù×÷ϵͳ,ÈçUNIX,DOS,Windows¼°LinuxµÈ.
CµÄ·¢Õ¹
1973Äê,CÓïÑÔµÚÒ»´Î±»ÓÃÀ´±àд²Ù×÷ϵͳ(Unix)µÄÄÚºË.Denn ......
×ªÔØ×Ô£º
ܰÈÙ¼ÒÔ°blog
ÔÚCÓïÑÔÖУ¬¼ÙÉèÎÒÃÇÓÐÕâÑùµÄÒ»¸öº¯Êý£º
int function(int a,int b)
µ÷
ÓÃʱֻҪÓÃresult =
function(1,2)ÕâÑùµÄ·½Ê½¾Í¿ÉÒÔʹÓÃÕâ¸öº¯Êý¡£µ«ÊÇ£¬µ±¸ß¼¶ÓïÑÔ±»±àÒë³É¼ÆËã»ú¿ÉÒÔʶ±ðµÄ»úÆ÷Âëʱ£¬ÓÐÒ»¸öÎÊÌâ¾Í͹ÏÖ³öÀ´£ºÔÚCPUÖУ¬¼ÆËã
»úûÓа취֪µÀÒ»¸öº¯Êýµ÷ÓÃÐèÒª¶àÉÙ¸ö¡¢Ê²Ã´ÑùµÄ²ÎÊý£¬Ò² ......
11¡¢ÏÂÃæµÄ´úÂëÊä³öÊÇʲô£¬ÎªÊ²Ã´£¿
Void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) £¿puts("> 6") : puts("<= 6");
}
²»¹ÜÈçºÎ£¬ÕâÎÞ·ûºÅÕûÐÍÎÊÌâµÄ´ð°¸ÊÇÊä³öÊÇ“>6”¡£ÔÒòÊǵ±±í´ïʽÖдæÔÚÓзûºÅÀàÐͺÍÎÞ·ûºÅÀàÐÍʱËùÓеIJÙ×÷Êý¶¼×Ô¶¯×ª»»ÎªÎÞ·ûºÅÀàÐÍ¡£Òò´Ë-20±ä³ÉÁËÒ»¸ ......
¿´µ½Õâ¸öÃæÊÔÌâ,¹À¼ÆºÜ¶à¸ÕѧCÖ¸ÕëµÄͬѧ¶¼»á¸ã´í.
void GetMemory(char *p)
{
// ´«µÝ½øÀ´µÄµÄֵʹµÃ*p==NULL
// ÕâÀïÐ޸ĵÄÊÇÕâ¸öº¯ÊýÄÚµÄÁÙʱָÕë±äÁ¿pµÄÖµ
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
// ´«µÝ½øÈ¥µÄÊÇstrµÄÖµNULL
GetMemory(str);
// ÕâÀïstrÖ¸Õë² ......