c/c++_static±äÁ¿µÄÓ¦ÓÃ
ÔÚCÓïÑÔ±à³ÌÖУ¬staticµÄÒ»¸ö×÷ÓÃÊÇÐÅÏ¢ÆÁ±Î£¡
±È·½Ëµ£¬Äã×Ô¼º¶¨ÒåÁËÒ»¸öÎļþ -- ¸ÃÎļþÖÐÓÐһϵÁеĺ¯ÊýÒÔ¼°±äÁ¿µÄÉùÃ÷ºÍ¶¨Ò壡
ÄãÏ£Íû¸ÃÎļþÖеÄһЩº¯ÊýºÍ±äÁ¿Ö»Äܱ»¸ÃÎļþÖеĺ¯ÊýʹÓã¬ÄÇô£¬Äã¿ÉÒÔÔڸú¯Êý¡¢±äÁ¿µÄÇ°Ãæ¼ÓÉÏstatic£¬´ú±íËûÃÇÖ»Äܱ»µ±Ç°ÎļþÖеĺ¯ÊýʹÓã¡
¶øÔÚC++ÖУ¬ÓÃstaticÀ´×÷ΪÐÅÏ¢ÆÁ±Î¾ÍÏÔµÃûÓбØÒªÁË£¡ÒòΪ£¬C++ÓÐÁËÐÅÏ¢ÆÁ±ÎµÄÀûÆ÷ -- class»úÖÆ£¡
ÀàÖеÄprivateÊôÐԵıäÁ¿ºÍº¯Êý¾Í¶ÔÍâ½ûÖ¹·ÃÎÊ£¡
È»ºóÊÇC/C++ͨÓõĺ¯Êý×÷ÓÃÓòµÄstaticÐ͵ıäÁ¿£¡ÆäÄ¿µÄ£¬Ò²ÊÇΪÁËÐÅÏ¢µÄÆÁ±Î£¡
int fun() {
static int a = 1;
a++;
}
ÔÚµÚÒ»´Î½øÈëÕâ¸öº¯ÊýµÄʱºò£¬±äÁ¿a±»³õʼ»¯Îª1£¡²¢½Ó×Å×ÔÔö1£¡
ÒÔºóÿ´Î½øÈë¸Ãº¯Êý£¬a¾Í²»»á±»Ôٴγõʼ»¯ÁË£¬½ö½øÐÐ×ÔÔö1µÄ²Ù×÷£¡
ÔÚstatic·¢Ã÷ǰ£¬Òª´ïµ½Í¬ÑùµÄ¹¦ÄÜ£¬ÔòÖ»ÄÜʹÓÃÈ«¾Ö±äÁ¿£º
int a = 1;
int fun() {
a++;
}
ÄÇô£¬aµÄÖµ¾ÍÓпÉÄܱ»ÆäËûº¯ÊýËù¸Ä±ä£¡
×îºó£¬ËµËµÀàÖеÄstatic±äÁ¿ºÍº¯Êý¡£
ÕâÖÖ´æ´¢ÊôÐԵıäÁ¿ºÍº¯ÊýÊÇͬһÖÖÀàµÄ²»Í¬ÊµÀýÖ®¼äͨÐŵÄÇÅÁº£¡
#include <iostream>
using namespace std;
class A {
public:
static int num; // ͳ¼Æ´´½¨Á˶àÉÙ¸öʵÀý
A () {num++}; // ÿ´´½¨Ò»¸öʵÀý£¬¾ÍÈÃnum×ÔÔö1
// ·µ»ØÍ¨¹ý¹¹Ô캯ÊýËù´´½¨¹ýµÄAÀàʵÀýµÄÊýÄ¿
static int how_many_instance() {
return num;
}
}
static A::num = 0; // ÐèÒªÔÚÀàÉêÃ÷µÄÍⲿµ¥¶À³õʼ»¯£¡
int main() {
cout << A::how_many_instance() << endl;
A a, b, c, d;
cout << A::how_many_instance() << endl;
Ïà¹ØÎĵµ£º
×ªÔØ×Ô£ºhttp://www.cnblogs.com/eddyshn/archive/2009/11/23/1608823.html
VC±àÒëÑ¡Ïî ¶àÏß³Ì(/MT)
¶àÏ̵߳÷ÊÔ(/MTd)
¶àÏß³Ì DLL (/MD)
¶àÏ̵߳÷ÊÔ DLL (/MDd)
C ÔËÐÐʱ¿â   ......
extern "C" ÊÇ C++ ±àÒëÆ÷Ö§³ÖµÄÒ»ÖÖÁ´½Óָʾ·û£¨linkage directive£©£¬Ëü±íʾÓÉÆäÉùÃ÷µÄº¯ÊýʹÓà C ÓïÑԵķ½Ê½±àÒëºÍÁ´½Ó¡£
C ºÍ C++ ¶Ôº¯Êý±àÒëºó²úÉúµÄ·ûºÅÃûÊDz»Ò»ÑùµÄ¡£¼ÙÉèÒ»¸öº¯ÊýµÄÔÐÍΪ:
void foo(int x, int y);
ÓÉ C ±àÒëÆ÷±àÒëºó²úÉúµÄ·ûºÅÃûΪ _foo£¬¶ø C++ ÓÉÓÚÖ§³ÖÖØÔØµÄÐèÒª£¬±àÒëºóµÄ·ûºÅà ......
Code::BlocksÊÇÒ»¸öÃâ·Ñ¡¢¿ªÔ´¡¢¿çƽ̨µÄIDE£¬Ê¹ÓÃC++¿ª·¢£¬²¢ÇÒʹÓÃwxWidgets×öΪGUIº¯ÊÔ¿â¡£Code::BlocksʹÓÃÁ˲å¼þ¼Ü¹¹£¬Æä¹¦ÄÜ¿ÉÒÔʹÓòå¼þ×ÔÓɵØÀ©³ä¡£Ä¿Ç°£¬
Code::BlocksÖ÷ÒªÕë¶Ô¿ª·¢C£¯C++³Ìʽ¶øÉè¼Æ¡£
ÓÉÓÚËü¿ª·ÅÔ´ÂëµÄÌØµã£¬WindowsÓû§¿ÉÒÔ²»ÒÀÀµÓÚVS.NET£¬±àд¿çƽ̨C++Ó¦Ó ......
C1XÊÇCÓïÑÔ¼´C99±ê×¼Ö®ºó½«ÒªÍƳöµÄ×îбê×¼£¬Á˽⵽µÃÔÎÄÈçÏ£º
C1X is the unofficial name of the planned new standard for the C programming language. It is intended to replace the existing C standard. This predecessor is informally known as C99. The standard is not yet fin ......
³£¼ûÎÊÌ⣺
±àÒëʧ°Ü£¬±¨´íÈçÏ“ÎÞ·¨½âÎöµÄÍⲿ·ûºÅ _WSACleanup@0”µÈ¡£
ÔÒòÊÇûÓÐÒýÓÃwinsock.hËùÔڵĿâ--Ws2_32.lib¡£
ÕâʱֻҪÌí¼ÓÒ»ÐдúÂë
#pragma comment( lib, "Ws2_32.lib")
¼´¿É¡£ ......