extern "C"
extern "C"°üº¬Ë«Öغ¬Ò壬ÆäÒ»£º±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä¶þ£º±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£
1£©±»extern “C”ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵ģ»
externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©µÄ¹Ø¼ü×Ö£¬¸Ã¹Ø¼ü×Ö¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿ÉÒÔÔÚ±¾Ä£¿é»òÆäËûÄ£¿éÖÐʹÓá£
×¢Ò⣺extern int a£»
½ö½öÊÇÔÚÉùÃ÷Ò»¸ö±äÁ¿£¬²¢²»ÊǶ¨Òå±äÁ¿a£¬²¢Î´Îªa·ÖÅäÄÚ´æ¿Õ¼ä¡£±äÁ¿aÔÚËùÓÐÄ£¿éÖÐ×÷ΪһÖÖÈ«¾Ö±äÁ¿Ö»Äܱ»¶¨ÒåÒ»´Î£¬·ñÔò»á³öÏÖÁ¬½Ó´íÎó¡£
ͨ³££¬ÔÚÄ£¿éµÄÍ·ÎļþÖжÔÄ£¿éÌṩ¸øÆäËûÄ£¿éÒýÓõĺ¯ÊýºÍÈ«¾Ö±äÁ¿ÒԹؼü×ÖexternÉùÃ÷¡£ÀýÈ磬Èç¹ûÄ£¿éBÓûÒýÓøÃÄ£¿éAÖж¨ÒåµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýʱֻÐè°üº¬Ä£¿éAµÄÍ·Îļþ¼´¿É¡£ÕâÑù£¬Ä£¿éBÖе÷ÓÃÄ£¿éAÖеĺ¯Êýʱ£¬ÔÚ±àÒë½×¶Î£¬Ä£¿éBËäÈ»ÕÒ²»µ½¸Ãº¯Êý£¬µ«ÊDz¢²»»á±¨´í£¬Ëü»áÔÚÁ¬½Ó½×¶ÎÖдÓÄ£¿éA±àÒëÉú³ÉµÄÄ¿±ê´úÂëÖÐÕÒµ½´Ëº¯Êý¡£
Óëextern¶ÔÓ¦µÄ¹Ø¼ü×ÖÊÇstatic£¬±»ËüÐÞÊεÄÈ«¾Ö±äÁ¿ºÍº¯ÊýÖ»ÄÜÔÚ±¾Ä£¿éÖÐʹÓá£Òò´Ë£¬Ò»¸öº¯Êý»ò±äÁ¿Ö»¿ÉÄܱ»±¾Ä£¿éʹÓÃʱ£¬Æä²»¿ÉÄܱ»extern "C"ÐÞÊΡ£
2£©±»extern "C"ÐÞÊεıäÁ¿ºÍº¯ÊýÊǰ´ÕÕCÓïÑÔ·½Ê½±àÒëºÍÁ¬½ÓµÄ
×÷ΪһÖÖÃæÏò¶ÔÏóµÄÓïÑÔ£¬C++Ö§³Öº¯ÊýÖØÔØ£¬¶ø¹ý³ÌʽÓïÑÔCÔò²»Ö§³Ö¡£º¯Êý±»C++±àÒëºóÔÚ·ûºÅ¿âÖеÄÃû×ÖÓëCÓïÑԵIJ»Í¬¡£ÀýÈ磬¼ÙÉèij¸öº¯ÊýµÄÔÐÍΪ£ºvoid foo(int x, int y);
¸Ãº¯Êý±»C±àÒëÆ÷±àÒëºóÔÚ·ûºÅ¿âÖеÄÃû×ÖΪ_foo£¬¶øC++±àÒëÆ÷Ôò»á²úÉúÏñ_foo_int_intÖ®ÀàµÄÃû×Ö£¨²»Í¬µÄ±àÒëÆ÷¿ÉÄܲúÉúµÄÃû×Ö²»Í¬£¬µ«ÊǶ¼²ÉÓÃÁËÏàͬµÄ»úÖÆ£©¡£_foo_int_intÕâÑùµÄÃû×Ö°üº¬Á˺¯ÊýÃû¡¢º¯Êý²ÎÊýÊýÁ¿¼°ÀàÐÍÐÅÏ¢£¬C++¾ÍÊÇ¿¿ÕâÖÖ»úÖÆÀ´ÊµÏÖº¯ÊýÖØÔØµÄ¡£ÀýÈ磬ÔÚC++ÖУ¬º¯Êývoid foo(int x, int y)Óëvoid foo(int x, float y)±àÒë²úÉúµÄ·ûºÅÊDz»ÏàͬµÄ£¬ºóÕßΪ_foo_int_float¡£
extern "C"×÷ÓãºÊµÏÖC++ÓëC¼°ÆäËüÓïÑԵĻìºÏ±à³Ì¡£
3£©extern "C"µÄ¹ßÓ÷¨
A£©ÔÚC++ÖÐÒýÓÃCÓïÑÔÖеĺ¯ÊýºÍ±äÁ¿£¬ÔÚ°üº¬CÓïÑÔÍ·Îļþ£¨¼ÙÉèΪcExample.h£©Ê±£¬Ðè½øÐÐÏÂÁд¦Àí£º
extern "C"
{
#include "cExample.h"
}
¶øÔÚCÓïÑÔµÄÍ·ÎļþÖУ¬¶ÔÆäÍⲿº¯ÊýÖ»ÄÜÖ¸¶¨ÎªexternÀàÐÍ£¬CÓïÑÔÖв»Ö§³Öextern "C"ÉùÃ÷£¬ÔÚ.cÎļþÖаüº¬ÁËextern "C"ʱ»á³öÏÖ±àÒëÓï·¨´íÎó¡£
&n
Ïà¹ØÎĵµ£º
Ò»¸ö¿ØÖÆÌ¨ÏµÄÊý×Ö±í´ïʽÇóÖµ³ÌÐò (c/c++)
Ô´´úÂë¼ûÏ£º
#include <stdio.h>
#include <string>
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <stack>
using namespace std;
//ÉèÖÃÔËËã·ûÓÅÏȼ¶µÄËã·¨
int Priority(const string opera) // ÔËËã·û ......
°æÈ¨ÉêÃ÷£ºÒÔÏÂÄÚÈÝÊôÓÚ×÷ÕßÕýÔÚд×÷µÄ¡¶Èí¼þ²âÊÔʵ¼ù¡·Ò»ÊéµÄÄÚÈÝ£¬Î´¾Ðí¿É²»µÃÓÃÓÚÈκÎÕýʽ³ö°æÎïÖУ¬Èç¹û×ªÔØÇë×¢Ã÷³ö´¦¡£
×÷ÕߣºÖÜΰÃ÷
´úÂë¼ìÊÓÒªµã
´úÂë¼ìÊÓ¼¼ÄÜÊôÓÚ¿ª·¢ÈËÔ±µÄ»ù±¾¹¦£¬Äܹ»ºÜ´ó³Ì¶ÈµØ·´Ó¦³ö¿ª·¢ÈËÔ±µÄÄÜÁ¦Ë®Æ½£¬Ç°Ãæ4.4.1½ÚÒѾ½²¹ýÌá¸ßÆÀÉó¼ìÊӵķ½·¨¡£ÏÂÃæÒÔʵ¼ÊµÄC/C++ÓïÑÔ·½ÃæµÄ´úÂëÀ´½²½â ......
×î½üÔÚ×ö³ÌÐòʱÐèҪʹÓÃÒ»¸öÒѾ±àºÃµÄC³ÌÐòÔ´Îļþ£¨ÓÐÍ·Îļþ£©£¬½«Í·Îļþ¼ÓÈëÒªµ÷ÓõÄÔ´ÎļþÖУ¬µ÷ÓÃÏàÓ¦Cº¯Êý£¬±àÒëʱ³öÏÖÈçÏ´íÎó£º
sss.c(3129) : fatal error C1010: unexpected end of file while looking for precompiled header directive
ÔÚÍøÉϲéÁËÏà¹Ø×ÊÁÏ£¬Ëµ²»ÄÜÔÚCÔ´ÎļþÖаüº¬"stdafx.h"Îļþ£¬
ÖªµÀÐèÒªÒ ......
http://www.diybl.com/course/3_program/c++/cppjs/20090403/163906.html
CºÍC++»ìºÏ±à³Ì(__cplusplus Óë external "c" µÄʹÓÃ)
www.diybl.com¡¡Ê±¼ä£º2009-04-03¡¡×÷Õß:ÄäÃû ±à¼:sky µã»÷£º¡¡124 [ÆÀÂÛ]
µÚÒ»ÖÖÀí½â
±ÈÈç˵ÄãÓÃC++¿ª·¢ÁËÒ»¸öDLL¿â£¬ÎªÁËÄܹ»ÈÃCÓïÑÔÒ²Äܹ»µ÷ÓÃÄãµÄDLLÊä³ö(Export)µÄº¯Êý£¬ÄãÐèÒªÓÃexte ......