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

C/C++ µÄÈ«¾Ö±äÁ¿³õʼ»¯Óë²»³õʼ»¯µÄÇø±ð

ÔÚCÓïÑÔÀȫ¾Ö±äÁ¿Èç¹û²»³õʼ»¯µÄ»°£¬Ä¬ÈÏΪ0£¬Ò²¾ÍÊÇ˵ÔÚÈ«¾Ö¿Õ¼äÀ
int x =0; ¸ú int x; µÄЧ¹û¿´ÆðÀ´ÊÇÒ»ÑùµÄ¡£µ«ÆäʵÕâÀïÃæµÄ²î±ðºÜ´ó£¬Ç¿ÁÒ½¨Òé´ó¼ÒËùÓеÄÈ«¾Ö±äÁ¿¶¼Òª³õʼ»¯£¬ËûÃǵÄÖ÷Òª²î±ðÈçÏ£º
±àÒëÆ÷ÔÚ±àÒëµÄʱºòÕë¶ÔÕâÁ½ÖÖÇé¿ö»á²úÉúÁ½ÖÖ·ûºÅ·ÅÔÚÄ¿±êÎļþµÄ·ûºÅ±íÖУ¬¶ÔÓÚ³õʼ»¯µÄ£¬½ÐÇ¿·ûºÅ£¬Î´³õʼ»¯µÄ£¬½ÐÈõ·ûºÅ¡£
Á¬½ÓÆ÷ÔÚÁ¬½ÓÄ¿±êÎļþµÄʱºò£¬Èç¹ûÓöµ½Á½¸öÖØÃû·ûºÅ£¬»áÓÐÒÔÏ´¦Àí¹æÔò£º
1¡¢Èç¹ûÓжà¸öÖØÃûµÄÇ¿·ûºÅ£¬Ôò±¨´í¡£
2¡¢Èç¹ûÓÐÒ»¸öÇ¿·ûºÅ£¬¶à¸öÈõ·ûºÅ£¬ÔòÒÔÇ¿·ûºÅΪ׼¡£
3¡¢Èç¹ûûÓÐÇ¿·ûºÅ£¬µ«Óжà¸öÖØÃûµÄÈõ·ûºÅ£¬ÔòÈÎѡһ¸öÈõ·ûºÅ¡£
»ùÓÚÒÔÉϹæÔò¿´ÏÂÃæµÄ³ÌÐò£º£¨±àÒëÆ÷Ϊgcc 3.4.6£¬ VCϽá¹û²»Ò»Ñù£©
main.cpp
int x;
void foo();
int main(int argc, char* argv[])
{
printf("x1:%d\n", x);
foo();
printf("x2:%d\n", x);
return 0;

var.cpp
int x;
void foo()
{
x = 2;

ÒòΪÁ½¸öÎļþÀïÃæµÄx¶¼±»³õʼ»¯ÁË£¬ËùÒÔ±àÒë³öÀ´µÄÁ½¸öÄ¿±êÎļþÀïx¶¼ÊÇÇ¿·ûºÅ£¬Á¬½ÓµÄʱºò»á±¨´í£º
multiple definition of `x' 
·ûºÏ¹æÔò1¡£
°Ñvar.cppÀïÃæµÄint x = 0;¸Ä³É int x; ²»×ö³õʼ»¯£¬±àÒë¡¢Á¬½ÓÎÞÈκξ¯¸æ£¬ÔËÐнá¹ûΪ£º
x:1
x:2
˵Ã÷Á¬½ÓµÄʱºòÒÔmain.cppÖеÄxΪ׼£¬fooº¯ÊýÐ޸ĵÄÊÇmain.cppÖж¨ÒåµÄx¡£·ûºÏ¹æÔò2¡£
°Ñmain.cppÖеijõʼ»¯Ò²È¥µô£¬¸Ä³É int x; ±àÒë¡¢Á¬½ÓÈÔÈ»ºÜ˳Àû£¬ÔËÐнá¹ûΪ£º
x:1
x:2
˵Ã÷mainº¯ÊýºÍfooº¯ÊýÐ޸ĵÄÊÇͬһ¸öx£¬Á¬½ÓÆ÷×Ô¼ºÑ¡ÔñÁËÒ»¸öx£¬·ûºÏ¹æÔò3.
´ó²¿·ÖÇé¿öÏ£¬ÎÒÃDz»Ï£ÍûÁ¬½ÓÆ÷ΪÎÒÃÇ×ö¾ö¶¨£¬ËùÒÔÎÒ²»ÊǺÜÈÏͬºóÁ½¸ö¹æÔò£¬ÖÁÉÙÓ¦¸Ã¸ø¸ö¾¯¸æ£¬¶ø²»Ó¦¸Ã°²¾²µØÍ¨¹ý¡£
Ò²Ðíдvar.cppµÄÈ˸ù±¾²»ÖªµÀmain.cppÀïÃæÒ²ÓÐÒ»¸öxÄØ£¬fooº¯ÊýµÄ±¾ÒâÒ²Ðí²¢²»ÊÇÒªÐÞ¸Ämain.cppÖеÄx¡£ÒòΪÕâÖÖÎÊÌâÒýÆðµÄbug»áºÜÄѲ顣
ËùÒÔÎÒÃÇÒª¾¡Á¿°ÑÈ«¾Ö±äÁ¿³õʼ»¯£¬¶ÔÓÚ²»Ïë¸ø±ðµÄÎļþÒýÓõıäÁ¿£¬Ò²¾¡Á¿ÓÃstaticÐÞÊΡ£
³ýÁËÁ¬½ÓʱµÄ±íÏÖ²»Ò»ÑùÍ⣬Ϊ³õʼ»¯µÄ·ûºÅÔÚÄ¿±êÎļþµÄbss¶ÎÖУ¬¶ø³õʼ»¯µÄ·ûºÅÔÚdata¶ÎÖС£


Ïà¹ØÎĵµ£º

C++ÖÐextern ¡°C¡±º¬ÒåÉî²ã̽Ë÷

1.ÒýÑÔ
¡¡¡¡C++ÓïÑԵĴ´½¨³õÖÔÊÇ“a better C”£¬µ«ÊÇÕâ²¢²»Òâζ×ÅC++ÖÐÀàËÆCÓïÑÔµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýËù²ÉÓõıàÒëºÍÁ¬½Ó·½Ê½ÓëCÓïÑÔÍêÈ«Ïàͬ¡£×÷ΪһÖÖÓûÓëC¼æÈݵÄÓïÑÔ£¬C++±£ÁôÁËÒ»²¿·Ö¹ý³ÌʽÓïÑÔµÄÌØµã£¨±»ÊÀÈ˳ÆÎª“²»³¹µ×µØÃæÏò¶ÔÏ󔣩£¬Òò¶øËü¿ÉÒÔ¶¨Òå²»ÊôÓÚÈκÎÀàµÄÈ«¾Ö±äÁ¿ºÍº¯Êý¡£µ«ÊÇ£¬C++±Ï¾ ......

½«Win32 C/C++Ó¦ÓóÌÐòÇ¨ÒÆµ½Linux

±¾ÎĵÄÄÚÈÝÊÇ Win32 API£¨ÌرðÊǽø³Ì¡¢Ï̺߳͹²ÏíÄÚ´æ·þÎñ£©µ½ POWER ÉÏ Linux µÄÓ³Éä¡£±¾ÎÄ¿ÉÒÔ°ïÖúÄúÈ·¶¨ÄÄÖÖÓ³Éä·þÎñ×îÊʺÏÄúµÄÐèÒª¡£×÷ÕßÏòÄúÏêϸ½éÉÜÁËËûÔÚÒÆÖ² Win32 C/C++ Ó¦ÓóÌÐòʱÓöµ½µÄ API Ó³Éä¡£
¸ÅÊö
Óкܶ෽ʽ¿ÉÒÔ½« Win32 C/C++ Ó¦ÓóÌÐòÒÆÖ²ºÍÇ¨ÒÆµ½ pSeries ƽ̨¡£Äú¿ÉÒÔʹÓÃÃâ·ÑÈí¼þ»òÕßµÚÈý·½¹¤¾ßÀ´ ......

C/C++ ×Ö½Ú¶ÔÆëÎÊÌâ

VCÖÐÏÂÃæ¼¸¸ö½á¹¹Ìå´óС·Ö±ðÊǶàÉÙÄØ
struct MyStruct
{
    double m4;
    char m1;
    int m3£»
};
struct MyStruct {
    char m1;
    double m4;
    int m3;
};
#pragma pack(push)   ......

CÈô¸ÉʵÓÃС¼¼ÇÉ

Visual C++6.0(5.0)¿ª·¢¹¤¾ß¹¦Äܷdz£Ç¿´ó£¬µ«ÊǶÔÓÚ³õѧÕßÀ´Ëµ£¬È´Óкܶàϸ½ÚµÄÎÊÌâÐèҪעÒâ¡£×÷ÕßËѼ¯ÕûÀíÁËÒÔÏÂһЩʵÓÃС¼¼ÇÉ£¬Ï£Íû¶Ô³õѧÕßÓÐËù°ïÖú¡£
  1:ʹÓÃvc¿ª·¢ÏîĿʱ£¬³£»áÓöµ½ÕâÖÖÇé¿ö£º
    ¼´Ã÷Ã÷Ö»¸Ä¶¯ÁËÒ»¸öÎļþ£¬È´Òª°ÑÕû¸öÏîĿȫ²¿ÖØÐ±àÒëÁ¬½ÓÒ»´Î¡£¸Õ¸ÕÁ¬½ÓºÃ£¬Ò»ÔËÐУ¬ÓÖÌáʾ ......

¡¶±à³ÌÖéçá¡·ÖеÄÎÊÌâÓÃCʵÏÖ——1

ÎÊÌâÃèÊö£ºÒ»Ë³ÐòÎļþÖÐÖÁ¶à´æÔÚ10000000¸ö¼Ç¼£¬Ã¿Ìõ¼Ç¼¶¼ÊÇÒ»¸ö7λÕûÊý£¬Çë¶Ô´ËÎļþÖÐÊý¾Ý½øÐÐÅÅÐò¡£
ÒªÇó£º1.³ÌÐò¿ÉʹÓÃÄÚ´æÖ»ÓÐ1MB¡£2.³ÌÐòÔËÐÐʱ¼ä¾¡¿ÉÄܵĶ̡£
²¹³ä˵Ã÷£ºÃ¿¸ö¼Ç¼¶¼ÊÇÒ»¸ö7λÕýÕûÊý£¬²¢ÇÒûÓÐÆäËûµÄ¹ØÁªÊý¾Ý£¬Ã¿¸öÕûÊýÖÁ¶àÖ»ÄܳöÏÖÒ»´Î¡£
ʵÏÖ¸ÙÒª£º
ÔÚÏÖʵÖУ¬Î»Í¼ºÍλÏòÁ¿ºÜ³£¼û£¬ÎÒÃÇ¿ÉÒÔÊ¹Ó ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ