C++ÖÐextern ¡°C¡±º¬ÒåÉî²ã̽Ë÷
1.ÒýÑÔ
¡¡¡¡C++ÓïÑԵĴ´½¨³õÖÔÊÇ“a better C”£¬µ«ÊÇÕâ²¢²»Òâζ×ÅC++ÖÐÀàËÆCÓïÑÔµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýËù²ÉÓõıàÒëºÍÁ¬½Ó·½Ê½ÓëCÓïÑÔÍêÈ«Ïàͬ¡£×÷ΪһÖÖÓûÓëC¼æÈݵÄÓïÑÔ£¬C++±£ÁôÁËÒ»²¿·Ö¹ý³ÌʽÓïÑÔµÄÌØµã(±»ÊÀÈ˳ÆÎª“²»³¹µ×µØÃæÏò¶ÔÏó”)£¬Òò¶øËü¿ÉÒÔ¶¨Òå²»ÊôÓÚÈκÎÀàµÄÈ«¾Ö±äÁ¿ºÍº¯Êý¡£µ«ÊÇ£¬C++±Ï¾¹ÊÇÒ»ÖÖÃæÏò¶ÔÏóµÄ³ÌÐòÉè¼ÆÓïÑÔ£¬ÎªÁËÖ§³Öº¯ÊýµÄÖØÔØ£¬C++¶ÔÈ«¾Öº¯ÊýµÄ´¦Àí·½Ê½ÓëCÓÐÃ÷ÏԵIJ»Í¬¡£
¡¡¡¡2.´Ó±ê׼ͷÎļþ˵Æð
¡¡¡¡Ä³ÆóÒµÔø¾¸ø³öÈçϵÄÒ»µÀÃæÊÔÌ⣺
¡¡¡¡ÃæÊÔÌâ:Ϊʲô±ê׼ͷÎļþ¶¼ÓÐÀàËÆÒÔϵĽṹ£¿
¡¡¡¡#ifndef __INCvxWorksh
¡¡¡¡#define __INCvxWorksh
¡¡¡¡#ifdef __cplusplus
¡¡¡¡extern "C" {
¡¡¡¡#endif
¡¡¡¡/*...*/
¡¡¡¡#ifdef __cplusplus
¡¡¡¡}
¡¡¡¡#endif
¡¡¡¡#endif /* __INCvxWorksh */
¡¡¡¡·ÖÎö
¡¡¡¡ÏÔÈ»£¬Í·ÎļþÖеıàÒëºê“#ifndef __INCvxWorksh¡¢#define __INCvxWorksh¡¢#endif” µÄ×÷ÓÃÊÇ·ÀÖ¹¸ÃÍ·Îļþ±»Öظ´ÒýÓá£
¡¡¡¡ÄÇô
¡¡¡¡#ifdef __cplusplus
¡¡¡¡extern "C" {
¡¡¡¡#endif
¡¡¡¡#ifdef __cplusplus
¡¡¡¡}
¡¡¡¡#endif
¡¡¡¡µÄ×÷ÓÃÓÖÊÇÊ²Ã´ÄØ£¿ÎÒÃǽ«ÔÚÏÂÎÄÒ»Ò»µÀÀ´¡£
¡¡¡¡3.Éî²ã½ÒÃÜextern "C"
¡¡¡¡extern "C" °üº¬Ë«Öغ¬Ò壬´Ó×ÖÃæÉϼ´¿ÉµÃµ½£ºÊ×ÏÈ£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä´Î£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£ÈÃÎÒÃÇÀ´Ïêϸ½â¶ÁÕâÁ½Öغ¬Òå¡£
¡¡¡¡±»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”
Ïà¹ØÎĵµ£º
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
//LuaʾÀý´ú ......
¡¡¡¡CÓïÑÔÌṩһÖÖÌØÊâµÄÔËËã·û——¶ººÅÔËËã·û¡£ÓÃËü½«Á½¸ö±í´ïʽÁ¬½ÓÆðÀ´¡£È磺
¡¡¡¡¡¡¡¡3+5£¬6+8
¡¡¡¡³ÆÎª¶ººÅ±í´ïʽ£¬ÓÖ³ÆÎª“˳ÐòÇóÖµÔËËã·û”¡£¶ººÅ±í´ïʽµÄÒ»°ãÐÎʽΪ£º
¡¡¡¡¡¡¡¡±í´ïʽ1£¬±í´ïʽ2
¡¡¡¡¶ººÅ±í´ïʽµÄÇó½â¹ý³ÌÊÇ£ºÏÈÇó½â±í´ïʽ1£¬ÔÙÇó½â±í´ïʽ2¡£Õû¸ö¶ººÅ±í´ïʽµÄÖµÊDZí´ïʽ2µÄ ......
C/C++ÓïÑԺܶàÈ˶¼±È½ÏÊìϤ£¬Õâ»ù±¾ÉÏÊÇÿλ´óѧÉú±ØÑ§µÄÒ»Ãűà³ÌÓïÑÔ£¬Í¨³£»¹¶¼ÊÇ×÷Ϊ³ÌÐòÉè¼ÆÈëÃÅÓïÑÔѧµÄ£¬²¢Çҿγ̴ó¶à°²ÅÅÔÚ´óÒ»¡£¸ÕÉÏ´óѧ£¬º¢×ÓÃÇ»¹¶¼ºÜ¹Ô£¬Ñ§Ï°Ò²±È½ÏÈÏÕæ£¬ÓÃÐÄ¡£ËùÒÔ£¬C/C++ÓïÑÔÕÆÎÕµØÒ²¶¼²»´í£¬²»ÓÃ˵±àÒë³ÌÐò£¬¾ÍÊÇд¸öÉϼ¸°ÙÐеijÌÐò¶¼²»ÔÚ»°Ï£¬µ«ÊÇËûÃÇÕæµÄÖªµÀC/C++³ÌÐò±àÒëµÄ²½Öèô£¿
Î ......
l Ò»Ö±¶ÔÕâ¿éÄÚÈݶ¼ºÜâðÍ·£¬ÒòΪËü¿´²»µ½Ãþ²»×Å£¬ÎÒÃÇÖ»Äܶ¢×Å×îºó±àÒëÁ´½ÓÖ®ºóµÄ½á¹ûÊdzɹ¦»òÊÇʧ°Ü£¬µ«ÊÇÈ´²»ÖªµÀ±àÒëÆ÷ÄÚ²¿ÊÇÈçºÎ²Ù×÷µÄ£»
l ÿµ±±àÒëÆ÷¸ø³ö´íÎóʱÎÒÃǶ¼Ö»Êǵ¥´¿µÄÈ¥´¦Àí´íÎó£¬È´²»ÖªµÀ±àÒëÆ÷ÊÇÈçºÎÕÒ³öÀ´µÄ£»
......
ÆäʵVIMÒ²ÄܰѱàÒë µ÷ÊÔ¼¯³ÉÔÚÒ»Æð£¬ÏñÊÇÒ»¸öIDEÒ»Ñù¡£
Ê×ÏÈÏÖÔÚVIMµÄÔ´Â룬ÒòΪҪ¼¯³Éµ÷ÊÔ»·¾³µÄ»°ÐèÒªÖØÐ±àÒëVIM²ÅÐУ¬ËùÒÔÎÒÃDz»ÈçÖØÐ°²×°Ò»¸ö¡£
VIMµÄÏÖÔÚµØÖ·£º
http://www.vim.org/sources.php
È»ºóÏÂÔØVIMGDB£¬ÕâÊÇvimµÄ¼¯³Éµ÷ÊÔ»·¾³µÄÒ»¸öÖØÒª²å¼þ³ÌÐò¡£
µØÖ·£ºhttp://sourceforge.net/projects/clewn/files ......