cÓëc++µÄstaticº¯Êý
cÓëc++ staticº¯ÊýµÄÇø±ð
±¾ÎÄת×Ô£ºhttp://blog.csdn.net/lipps/archive/2007/05/18/1615419.aspx
static¹Ø¼ü×ÖÊÇC, C++Öж¼´æÔڵĹؼü×Ö, ËüÖ÷ÒªÓÐÈýÖÖʹÓ÷½Ê½, ÆäÖÐǰÁ½ÖÖÖ»Ö¸ÔÚCÓïÑÔÖÐʹÓÃ, µÚÈýÖÖÔÚC++ÖÐʹÓÃ(C,C++ÖоßÌåϸ΢²Ù×÷²»¾¡Ïàͬ, ±¾ÎÄÒÔC++Ϊ׼).
(1)¾Ö²¿¾²Ì¬±äÁ¿
(2)Íⲿ¾²Ì¬±äÁ¿/º¯Êý
(3)¾²Ì¬Êý¾Ý³ÉÔ±/³ÉÔ±º¯Êý
ÏÂÃæ¾ÍÕâÈýÖÖʹÓ÷½Ê½¼°×¢ÒâÊÂÏî·Ö±ð˵Ã÷
Ò»¡¢¾Ö²¿¾²Ì¬±äÁ¿
ÔÚC/C++ÖÐ, ¾Ö²¿±äÁ¿°´ÕÕ´æ´¢ÐÎʽ¿É·ÖΪÈýÖÖauto, static, register
(<CÓïÑÔ³ÌÐòÉè¼Æ(µÚ¶þ°æ)>Ì·ºÆÇ¿, µÚ174-175Ò³)
ÓëautoÀàÐÍ(ÆÕͨ)¾Ö²¿±äÁ¿Ïà±È, static¾Ö²¿±äÁ¿ÓÐÈýµã²»Í¬
1. ´æ´¢¿Õ¼ä·ÖÅ䲻ͬ
autoÀàÐÍ·ÖÅäÔÚÕ»ÉÏ, ÊôÓÚ¶¯Ì¬´æ´¢Àà±ð, Õ¼¶¯Ì¬´æ´¢Çø¿Õ¼ä, º¯Êýµ÷ÓýáÊøºó×Ô¶¯ÊÍ·Å, ¶østatic·ÖÅäÔÚ¾²Ì¬´æ´¢Çø, ÔÚ³ÌÐòÕû¸öÔËÐÐÆÚ¼ä¶¼²»ÊÍ·Å. Á½ÕßÖ®¼äµÄ×÷ÓÃÓòÏàͬ, µ«Éú´æÆÚ²»Í¬.
2. static¾Ö²¿±äÁ¿ÔÚËù´¦Ä£¿éÔÚ³õ´ÎÔËÐÐʱ½øÐгõʼ»¯¹¤×÷, ÇÒÖ»²Ù×÷Ò»´Î
3. ¶ÔÓÚ¾Ö²¿¾²Ì¬±äÁ¿, Èç¹û²»¸³³õÖµ, ±àÒëÆÚ»á×Ô¶¯¸³³õÖµ0»ò¿Õ×Ö·û, ¶øautoÀàÐ͵ijõÖµÊDz»È·¶¨µÄ. (¶ÔÓÚC++ÖеÄclass¶ÔÏóÀýÍâ, classµÄ¶ÔÏóʵÀýÈç¹û²»³õʼ»¯, Ôò»á×Ô¶¯µ÷ÓÃĬÈϹ¹Ô캯Êý, ²»¹ÜÊÇ·ñÊÇstaticÀàÐÍ)
ÌØµã: static¾Ö²¿±äÁ¿µÄ”¼ÇÒäÐÔ”ÓëÉú´æÆÚµÄ”È«¾ÖÐÔ”
Ëùν”¼ÇÒäÐÔ”ÊÇÖ¸ÔÚÁ½´Îº¯Êýµ÷ÓÃʱ, ÔÚµÚ¶þ´Îµ÷ÓýøÈëʱ, Äܱ£³ÖµÚÒ»´Îµ÷ÓÃÍ˳öʱµÄÖµ.
ʾÀý³ÌÐòÒ»
#include <iostream>
using namespace std;
void staticLocalVar()
{
static int a = 0; // ÔËÐÐÆÚʱ³õʼ»¯Ò»´Î, Ï´ÎÔÙµ÷ÓÃʱ, ²»½øÐгõʼ»¯¹¤×÷
cout<<"a="<<a<<endl;
++a;
}
int main()
{
staticLocalVar(); // µÚÒ»´Îµ÷ÓÃ, Êä³öa=0
staticLocalVar(); // µÚ¶þ´Îµ÷ÓÃ, ¼ÇÒäÁ˵ÚÒ»´ÎÍ˳öʱµÄÖµ, Êä³öa=1
return 0;
}
Ó¦ÓÃ:
ÀûÓÔ¼ÇÒäÐÔ”, ¼Ç¼º¯Êýµ÷ÓõĴÎÊý(ʾÀý³ÌÐòÒ»)
ÀûÓÃÉú´æÆÚµÄ”È«¾ÖÐÔ”, ¸ÄÉÆ”return a pointer / reference to a local object”µÄÎÊÌâ. Local objectµÄÎÊÌâÔÚÓÚÍ˳öº¯Êý, Éú´æÆÚ¼´½áÊø,. ÀûÓÃstaticµÄ×÷ÓÃ, ÑÓ³¤±äÁ¿µÄÉú´æÆÚ.
ʾÀý³ÌÐò¶þ:
// IP address to string for
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
ACE×ÔÊÊÅäͨÐÅ»·¾³£¨ADAPTIVE Communication Environment£©ÊÇ¿ÉÒÔ×ÔÓÉʹÓᢿª·ÅÔ´ÂëµÄÃæÏò¶ÔÏó£¨OO£©¿ò¼Ü£¨Framework£©£¬ÔÚÆäÖÐʵÏÖÁËÐí¶àÓÃÓÚ²¢·¢Í¨ÐÅÈí¼þµÄºËÐÄģʽ¡£ACEÌṩÁËÒ»×é·á¸»µÄ¿É¸´ÓÃC++ Wrapper Facade£¨°ü×°Íâ¹Û£©ºÍ¿ò¼Ü×é¼þ£¬¿É¿çÔ½¶àÖÖÆ½Ì¨Íê³ÉͨÓõÄͨÐÅÈí¼þÈÎÎñ£¬ÆäÖаüÀ¨£ºÊ¼þ¶à··ÖÀëºÍʼþ´¦À ......
¶þ·Ö²éÕҵĴúÂë.
int bfind(int* a,int len,int val)
{
int m = len/2;
int l = 0;
int r = len;
while(l!=m && r!= m)
{
if(a[m] > val)
& ......
1£®ÒÑÖªstrcpy º¯ÊýµÄÔÐÍÊÇ£º
char *strcpy(char *strDest, const char *strSrc);
ÆäÖÐstrDest ÊÇÄ¿µÄ×Ö·û´®£¬strSrc ÊÇÔ´×Ö·û´®¡£²»µ÷ÓÃC++/C µÄ×Ö·û´®¿âº¯Êý£¬Çë±àдº¯Êý strcpy
´ð°¸£º
char *strcpy(char *strDest, const char *strSrc)
{
if ( strDest == NULL || strSrc == NULL)
return NULL ;
if ( strDest ......
ʹÓÃC/C++À©Õ¹Python
·Òë:
gashero
Èç¹ûÄã»áÓÃC£¬ÊµÏÖPythonǶÈëÄ£¿éºÜ¼òµ¥¡£ÀûÓÃÀ©Õ¹Ä£¿é¿É×öºÜ¶àPython²»·½±ã×öµÄÊÂÇ飬ËûÃÇ¿ÉÒÔÖ±½Óµ÷ÓÃC¿âºÍϵͳµ÷Óá£
ΪÁËÖ§³ÖÀ©Õ¹£¬Python API¶¨ÒåÁËһϵÁк¯Êý¡¢ºêºÍ±äÁ¿£¬ÌṩÁ˶ÔPythonÔËÐÐʱϵͳµÄ·ÃÎÊÖ§³Ö¡£PythonµÄC APIÓÉCÔ´Âë×é³É£¬²¢°üº¬ “Python.h” Í·Îļ ......