externç¨æ³è¯¦è§£(转)
1 åºæ¬è§£é
ããexternå¯ä»¥ç½®äºåéæè
å½æ°åï¼ä»¥æ 示åéæè
å½æ°çå®ä¹å¨å«çæ件ä¸ï¼æ示ç¼è¯å¨éå°æ¤åéåå½æ°æ¶å¨å
¶ä»æ¨¡åä¸å¯»æ¾å
¶å®ä¹ã
ããå¦å¤ï¼externä¹å¯ç¨æ¥è¿è¡é¾æ¥æå®ã2 é®é¢ï¼extern åé
ããå¨ä¸ä¸ªæºæ件éå®ä¹äºä¸ä¸ªæ°ç»ï¼char a[6];
ããå¨å¦å¤ä¸ä¸ªæ件éç¨ä¸åè¯å¥è¿è¡äºå£°æï¼extern char *aï¼
ãã请é®ï¼è¿æ ·å¯ä»¥åï¼
ããçæ¡ä¸åæï¼
ãã1)ãä¸å¯ä»¥ï¼ç¨åºè¿è¡æ¶ä¼åè¯ä½ éæ³è®¿é®ãåå å¨äºï¼æåç±»åTçæé并ä¸çä»·äºç±»åTçæ°ç»ãextern char *a声æçæ¯ä¸ä¸ªæéåéèä¸æ¯å符æ°ç»ï¼å æ¤ä¸å®é
çå®ä¹ä¸åï¼ä»èé æè¿è¡æ¶éæ³è®¿é®ãåºè¯¥å°å£°ææ¹ä¸ºextern char a[ ]ã
ãã2)ãä¾ååæå¦ä¸ï¼å¦æa[] = "abcd",åå¤é¨åéa=0x61626364 (abcdçASCIIç å¼)ï¼*aæ¾ç¶æ²¡ææä¹
ããæ¾ç¶aæåç空é´ï¼0x61626364ï¼æ²¡ææä¹ï¼æåºç°éæ³å
å访é®ã
ãã3)ãè¿æ示æ们ï¼å¨ä½¿ç¨externæ¶åè¦ä¸¥æ ¼å¯¹åºå£°ææ¶çæ ¼å¼ï¼å¨å®é
ç¼ç¨ä¸ï¼è¿æ ·çé误屡è§ä¸é²ã
ãã4)ãexternç¨å¨åé声æä¸å¸¸å¸¸æè¿æ ·ä¸ä¸ªä½ç¨ï¼ä½ å¨*.cæ件ä¸å£°æäºä¸ä¸ªå
¨å±çåéï¼è¿ä¸ªå
¨å±çåéå¦æè¦è¢«å¼ç¨ï¼å°±æ¾å¨*.hä¸å¹¶ç¨externæ¥å£°æã
4 é®é¢ï¼extern å½æ°2
ããå½å½æ°æä¾æ¹åæ¹é¢ä¿®æ¹å½æ°ååæ¶ï¼å¦æ使ç¨æ¹ä¸ç¥æ
继ç»æ²¿ç¨åæ¥çexternç³æï¼è¿æ ·ç¼è¯æ¶ç¼è¯å¨ä¸ä¼æ¥éãä½æ¯å¨è¿è¡è¿ç¨ä¸ï¼å 为å°äºæè
å¤äºè¾å
¥åæ°ï¼å¾å¾ä¼ç
§æç³»ç»é误ï¼è¿ç§æ
åµåºè¯¥å¦ä½è§£å³ï¼
ããçæ¡ä¸åæï¼
ããç®åä¸çé对è¿ç§æ
åµçå¤ç没æä¸ä¸ªå¾å®ç¾çæ¹æ¡ï¼é常çåæ³æ¯æä¾æ¹å¨èªå·±çxxx_pub.hä¸æä¾å¯¹å¤é¨æ¥å£ç声æï¼ç¶åè°ç¨æ¹include该头æ件ï¼ä»èçå»externè¿ä¸æ¥ã以é¿å
è¿ç§é误ã
ããå®åæåéï¼å¯¹externçåºç¨ï¼ä¸åçåºååºè¯¥éæ©ä¸åçåæ³ã5 é®é¢ï¼extern âCâ
ããå¨C++ç¯å¢ä¸ä½¿ç¨Cå½æ°çæ¶åï¼å¸¸å¸¸ä¼åºç°ç¼è¯å¨æ æ³æ¾å°obj模åä¸çCå½æ°å®ä¹ï¼ä»è导è´é¾æ¥å¤±è´¥çæ
åµï¼åºè¯¥å¦ä½è§£å³è¿ç§æ
åµå¢ï¼ããçæ¡ä¸åæï¼
ããC++è¯è¨å¨ç¼è¯çæ¶å为äºè§£å³å½æ°çå¤æé®é¢ï¼ä¼å°å½æ°åååæ°èåèµ·æ¥çæä¸ä¸ªä¸é´çå½æ°å称ï¼èCè¯è¨åä¸ä¼ï¼å æ¤ä¼é æé¾æ¥æ¶æ¾ä¸å°å¯¹åºå½æ°çæ
åµï¼æ¤æ¶Cå½æ°å°±éè¦ç¨extern âCâè¿è¡é¾æ¥æå®ï¼è¿åè¯ç¼è¯å¨ï¼è¯·ä¿ææçå称ï¼ä¸è¦ç»æçæç¨äºé¾æ¥çä¸é´å½æ°åã
ããä¸é¢æ¯ä¸ä¸ªæ åçåæ³ï¼
//å¨.hæ件ç头ä¸
#ifdef __cplusplus
#if __cplusplus
extern "C"{
ã#endif
ã#endif /* __cplusplus */
ãâ¦
ãâ¦
ã//.hæ件ç»æçå°æ¹
ã#ifdef __cplusplus
ã#if __cplusplus
}
#endif
#endif /* __cplusplus */ </SPAN>3 é®é¢ï¼extern å½æ°1
ãã常常è§externæ¾å¨å½æ°çåé¢æ为å½æ°å£°æçä¸é¨åï¼é£ä¹ï¼Cè¯è¨çå
³é®åexternå¨å½æ°ç声æä¸èµ·ä»ä¹ä½ç¨ï¼
ããçæ¡ä¸åæï¼
ããå¦æå½æ°ç声æä¸å¸¦æå
³é®åexternï¼ä»
ä»
æ¯æ示è¿ä¸ªå½æ°å¯è½å¨å«çæºæ件éå®ä¹ï¼æ²¡æå
¶å®ä½ç¨ãå³ä¸è¿°ä¸¤ä¸ªå½æ°å£°æ没æææ¾çåºå«ï¼
extern int f(); åint f();
ããå½ç¶ï¼è¿æ ·çç¨å¤è¿æ¯æçï¼å°±æ¯å¨ç¨åºä¸å代include â*.hâæ¥å£°æå½æ°ï¼å¨ä¸äºå¤æç项ç®ä¸ï¼ææ¯è¾ä¹ æ¯å¨ææçå½æ°å£°æåæ·»å extern修饰ã
温馨提示:答案为网友推荐,仅供参考