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

C/C++ÖÐStaticµÄ×÷ÓÃÏêÊö


C/C++ÖÐStaticµÄ×÷ÓÃÏêÊö
http://developer.51cto.com  2008-12-29 09:52  ØýÃû  ÖйúITʵÑéÊÒ  ÎÒÒªÆÀÂÛ(0)
CÓïÑÔÖУ¬staticµÄ×ÖÃæÒâ˼ºÜÈÝÒ×°ÑÎÒÃǵ¼ÈëÆç;¡£±¾ÎĽ«¶ÔC/C++ÖÐStatic½øÐÐÏêÊö¡£
1.ÏÈÀ´½éÉÜËüµÄµÚÒ»ÌõÒ²ÊÇ×îÖØÒªµÄÒ»Ìõ£ºÒþ²Ø¡£
µ±ÎÒÃÇͬʱ±àÒë¶à¸öÎļþʱ£¬ËùÓÐδ¼Óstaticǰ׺µÄÈ«¾Ö±äÁ¿ºÍº¯Êý¶¼¾ßÓÐÈ«¾Ö¿É¼ûÐÔ¡£ÎªÀí½âÕâ¾ä»°£¬ÎÒ¾ÙÀýÀ´ËµÃ÷¡£ÎÒÃÇҪͬʱ±àÒëÁ½¸öÔ´Îļþ£¬Ò»¸öÊÇa.c£¬ÁíÒ»¸öÊÇmain.c.
ÏÂÃæÊÇa.cµÄÄÚÈÝ£º
char a = 'A'; // global variable
void msg()
{
printf("Hello\n");
}
ÏÂÃæÊÇmain.cµÄÄÚÈÝ£º
int main(void)
{
extern char a; // extern variable must be declared before use
printf("%c ", a);
(void)msg();
return 0;
}
³ÌÐòµÄÔËÐнá¹ûÊÇ£º
A Hello
Äã¿ÉÄÜ»áÎÊ£ºÎªÊ²Ã´ÔÚa.cÖж¨ÒåµÄÈ«¾Ö±äÁ¿aºÍº¯ÊýmsgÄÜÔÚmain.cÖÐʹÓã¿Ç°ÃæËµ¹ý£¬ËùÓÐδ¼Óstaticǰ׺µÄÈ«¾Ö±äÁ¿ºÍº¯Êý¶¼¾ßÓÐÈ«¾Ö¿É¼ûÐÔ£¬ÆäËüµÄÔ´ÎļþÒ²ÄÜ·ÃÎÊ¡£´ËÀýÖУ¬aÊÇÈ«¾Ö±äÁ¿£¬msgÊǺ¯Êý£¬²¢ÇÒ¶¼Ã»ÓмÓstaticǰ׺£¬Òò´Ë¶ÔÓÚÁíÍâµÄÔ´Îļþmain.cÊǿɼûµÄ¡£
Èç¹û¼ÓÁËstatic£¬¾Í»á¶ÔÆäËüÔ´ÎļþÒþ²Ø¡£ÀýÈçÔÚaºÍmsgµÄ¶¨Òåǰ¼ÓÉÏstatic£¬main.c¾Í¿´²»µ½ËüÃÇÁË¡£ÀûÓÃÕâÒ»ÌØÐÔ¿ÉÒÔÔÚ²»Í¬µÄÎļþÖж¨ÒåͬÃûº¯ÊýºÍͬÃû±äÁ¿£¬¶ø²»±Øµ£ÐÄÃüÃû³åÍ»¡£Static¿ÉÒÔÓÃ×÷º¯ÊýºÍ±äÁ¿µÄǰ׺£¬¶ÔÓÚº¯ÊýÀ´½²£¬staticµÄ×÷ÓýöÏÞÓÚÒþ²Ø£¬¶ø¶ÔÓÚ±äÁ¿£¬static»¹ÓÐÏÂÃæÁ½¸ö×÷Óá£
2.staticµÄµÚ¶þ¸ö×÷ÓÃÊDZ£³Ö±äÁ¿ÄÚÈݵij־á£
´æ´¢ÔÚ¾²Ì¬Êý¾ÝÇøµÄ±äÁ¿»áÔÚ³ÌÐò¸Õ¿ªÊ¼ÔËÐÐʱ¾ÍÍê³É³õʼ»¯£¬Ò²ÊÇΨһµÄÒ»´Î³õʼ»¯¡£¹²ÓÐÁ½ÖÖ±äÁ¿´æ´¢ÔÚ¾²Ì¬´æ´¢Çø£ºÈ«¾Ö±äÁ¿ºÍstatic±äÁ¿£¬Ö»²»¹ýºÍÈ«¾Ö±äÁ¿±ÈÆðÀ´£¬static¿ÉÒÔ¿ØÖƱäÁ¿µÄ¿É¼û·¶Î§£¬Ëµµ½µ×static»¹ÊÇÓÃÀ´Òþ²ØµÄ¡£ËäÈ»ÕâÖÖÓ÷¨²»³£¼û£¬µ«ÎÒ»¹ÊǾÙÒ»¸öÀý×Ó¡£
#include £¼stdio.h£¾
int fun(void){
static int count = 10; // ÊÂʵÉϴ˸³ÖµÓï¾ä´ÓÀ´Ã»ÓÐÖ´Ðйý
return count--;
}
int count = 1;
int main(void)
{
printf("global\t\tlocal static\n");
for(; count £¼= 10; ++count)
printf("%d\t\t%d\n", count, fun());
return 0;
}
³ÌÐòµÄÔËÐнá¹ûÊÇ£º
global local static
1  10
2   9
3   8
4   7
5   6
6   5
7   4
8   3
9   2
10  1
3.staticµÄµÚÈý¸ö×÷ÓÃÊ


Ïà¹ØÎĵµ£º

CÖÐÈ«¾Ö±äÁ¿ºÍº¯ÊýÉùÃ÷µÄÈÏʶ

ÔÚCÖпÉÒÔ¶¨ÒåÈ«¾Ö±äÁ¿£¬È«¾Ö±äÁ¿ÊÇÔÚ³ÌÐò¼ÓÔØ³õʼ»¯Ê±·ÖÅä¿Õ¼ä²¢½øÐгõʼ»¯¡£ÔÚc´úÂëÖж¨Òå/ÉùÃ÷È«¾Ö±äÁ¿µÄ·½Ê½ÈçÏÂ
1. int n;
    ¶¨Òå»òÕßÉùÃ÷£¨Èç¹ûÔÚÆäËûÎļþÖÐÒѶ¨Ò壩ȫ¾Ö±äÁ¿¡£
2. int n = 10;
    ¶¨ÒåÈ«¾Ö±äÁ¿²¢³õʼ»¯¡£
3. extern int n;
    ÉùÃ÷ÔÚÍⲿ¶¨Ò ......

CÖеĿɱä²ÎÊýÑо¿

CÖеĿɱä²ÎÊýÑо¿
Ò»£® ºÎν¿É±ä²ÎÊý
int
printf( const char* format, ...);
ÕâÊÇʹÓùýCÓïÑÔµÄÈËËùÔÙÊìϤ²»¹ýµÄprintfº¯ÊýÔ­ÐÍ£¬ËüµÄ²ÎÊýÖÐ
¾ÍÓй̶¨²ÎÊýformatºÍ¿É±ä²ÎÊý£¨ÓÔ…”±íʾ£©. ¶øÎÒÃÇÓÖ¿ÉÒÔÓø÷ÖÖ·½Ê½À´µ÷ÓÃprintf,Èç:
printf("%d",value);

printf("%s",s ......

½âÎöxml org.w3c.dom


1.Òª½âÎöµÄXMLÎļþÈçÏ£º
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet href="student.xsl" type="text/xsl"?>
<StudentInfo>
 <student>
  <name>´ïÄÚ</name>
  <sex>ÄÐ</sex>
  <lesson>
   ......

´ÓCµ½Perl

´ÓCµ½Perl
2008Äê11ÔÂ19ÈÕ ÐÇÆÚÈý 23:06
×÷ÕߣºÍõ´Ï <xiyou.wangcong@gmail.com>
     ºÜ¶àÈ˲¢²»ÊǰÑPerlµ±×öµÚÒ»Ãűà³ÌÓïÑÔÀ´Ñ§Ï°µÄ£¬ÔÚѧPerl֮ǰÍùÍùÒѾ­ÕÆÎÕÁË
Ò»Á½ÃÅÆäËüÓïÑÔ¡£ËäÈ»ÓÐÕùÒ飬µ«ÊÇÎÒ¸öÈËÈÏΪPerlȷʵ²»ÊʺÏ×÷ΪÈëÃÅÓïÑÔ¡£ÕâÆªÎÄÕ¾ÍÊÇд¸øÄÇЩÊìϤC¶øÇÒÓÖÏë
ÕÆÎÕPerlµ ......

¹ØÓÚÏßÐÔ±íµÄC³ÌÐò£¬Óï·¨ÎÊÌ⣿²»»á°É

´íÎó¾ÍÏÂÃæÈýÐУ¬£¨¿´µ½µÄ°ïÎÒ¿´¿´ÊÇÄÄÀïµÄÎÊÌâ°¡£©
 \MSDev98\MyProjects\example\ex.c(117) : error C2449: found '{' at file scope (missing function header?)
F:\MSDev98\MyProjects\example\ex.c(120) : error C2059: syntax error : '}'
F:\MSDev98\MyProjects\example\ex.c(122) : error C2059: syntax er ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ