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

LuaÓëC½»»¥ÈëÃÅ

 LuaÓëC½»»¥ÈëÃÅ
¼ò½é
LuaÓëC/C++½áºÏÊǺܽôÃܵÄ, LuaÓëC++½»»¥Êǽ¨Á¢ÔÚLuaÓëCµÄ»ù´¡ÉϵÄ, Ëù
ÒÔżÏÈ´ÓLuaÓëC½²Æð.
ÕýÈçµÚÒ»½²Ëù˵, ÔËÐÐLua³ÌÐò»òÕß˵µ÷ÓÃLuaÖ÷ÒªÓÐÁ½ÖÖ·½Ê½:
* ͨ¹ýÃüÁîÐÐÖ´ÐÐ"Lua"ÃüÁî
* ͨ¹ýLuaµÄC¿â
ËäÈ»´ËǰżÃÇÒ»Ö±ÓõÚÒ»ÖÖ·½Ê½, µ«Å¼Òª¸æËßÄã, ͨ¹ýLuaµÄC¿âÖ´ÐвÅÊÇÓÎÏ·ÖÐ
³£Óõķ½Ê½.
2.LuaµÄC¿â
LuaµÄC¿â¿ÉÒÔ×öΪShared Libraryµ÷ÓÃ, µ«Ò»°ã¿ª·¢ÓÎϷʱ»á°ÑLuaµÄËùÓÐÔ´³ÌÐò
¶¼°üº¬ÔÚÄÚ, ²¢²»°ÑLua±àÒë³É¹²Ïí¿âµÄÐÎʽ. ÒòΪLua³ÌÐòÖ»ÓÐ100¶àK, ¶øÇÒ¼¸ºõ
¿ÉÒÔÔÚÈκαàÒëÆ÷ÏÂClean Compile. ´øLuaÔ´³ÌÐòµÄÁíÒ»¸öºÃ´¦Ê±, ¿ÉÒÔËæÊ±¶ÔLua
±¾Éí½øÐÐÀ©³ä, Ôö¼ÓżÃÇËùÐèµÄ¹¦ÄÜ.
LuaµÄC¿âÌṩһϵÁÐAPI:
* ¹ÜÀíÈ«¾Ö±äÁ¿
* ¹ÜÀítables
* µ÷Óú¯Êý
* ¶¨Òåк¯Êý, ÕâÒ²¿ÉÒÔÍêÈ«ÓÉCʵÏÖ
* À¬»øÊÕ¼¯Æ÷Garbage collector, ËäÈ»Lua¿ÉÒÔ×Ô¶¯½øÐÐ, µ«ÍùÍù²»ÊÇÁ¢¼´Ö´ÐеÄ,
  ËùÒÔ¶ÔʵʱÐÔÒªÇó±È½Ï¸ßµÄ³ÌÐò, »á×Ô¼ºµ÷ÓÃÀ¬»øÊÕ¼¯Æ÷
* ÔØÈë²¢Ö´ÐÐLua³ÌÐò, ÕâÒ²¿ÉÒÔÓÉLua×ÔÉíʵÏÖ
* ÈκÎLua¿ÉÒÔʵÏֵŦÄÜ, ¶¼¿ÉÒÔͨ¹ýLuaµÄC APIʵÏÖ, Õâ¶ÔÓÚÓÅ»¯³ÌÐòµÄÔËÐÐËÙ¶È
  ÓаïÖú. ¾­³£µ÷ÓõĹ²ÓõÄLua³ÌÐòƬ¶Ï¿ÉÒÔת³ÉC³ÌÐò, ÒÔÌá¸ßЧÂÊ. Á¬Lua¶¼ÊÇCдµÄ
  »¹ÓÐʲôC²»ÄÜʵÏÖÄØ? 
3.LuaÓëC¼¯³ÉµÄÀý×Ó
Àýe10.c
/* A simple Lua interpreter. */
#include 
#include 
int main(int argc, char *argv[]) {    
char line[BUFSIZ];    
lua_State *L = lua_open(0);    
while (fgets(line, sizeof(line), stdin) != 0)        
lua_dostring(L, line);    
lua_close(L);    
return 0;
}
±àÒë
Linux/Cygwin
* ÏȱàÒëLua, ²¢°ÑÍ·Îļþ·ÅÈëinclude·¾¶
* gcc e10.c -llua -llualib -o e10
VC6/VC2003
* ÏȱàÒëLua, ÔÚOptionÖÐÉèÖÃÍ·ÎļþºÍ¿âÎļþ·¾¶
* н¨¹¤³Ì,ÔÚ¹¤³ÌÅäÖÃÖмÓÈ븽¼Ó¿âlua.libºÍlualib.lib
* ±àÒë³Éexe
ÔËÐнá¹û
±¾³ÌÐòµÄ¹¦ÄÜÊÇʵÏÖÒ»¸öLua½âÊÍÆ÷, ÊäÈëµÄÿÐÐ×Ö·û¶¼»á±»½âÊͳÉLua²¢Ö´ÐÐ.
³ÌÐò˵Ã÷
* #include  °üº¬luaÍ·Îļþ, È»ºó²Å¿ÉÒÔʹÓÃAPI
* lua_State *L = lua_open(0) ´ò¿ªÒ»¸öLuaÖ´ÐÐÆ÷
* fgets(line, sizeof(line), stdin) ´Ó±ê×¼ÊäÈëÀï¶ÁÈëÒ»ÐÐ
* lua_dostring(L, line) Ö´ÐÐ


Ïà¹ØÎĵµ£º

¿É±äÄ¿±êC±àÒëÆ÷ µÚ4Õ ÀàÐÍ

C³ÌÐòÖоßÓзḻµÄÊý¾ÝÀàÐÍ£¬°üÀ¨ÉùÃ÷ÖÐÏÔʽ¶¨ÒåµÄÀàÐͺÍÓÃ×ö±í´ïʽÖмäÀàÐ͵ĵ¼³öÀàÐÍ¡£ÀýÈ磬ÏÂÃæµÄ¸³ÖµÓï¾ä°üº¬3 ÖÖ²»Í¬ÀàÐÍ:
    int *p, x;
    *p = x;
xÊÇÒ»¸ö´æ·ÅÕûÊýµÄµ¥ÔªµÄµØÖ·£¬Òò´ËxµÄµØÖ·µÄÀàÐÍÊÇ£ºÖ¸ÏòÒ»¸öÕûÊýµÄÖ¸Õë¡£xµÄÖµµÄÀàÐÍÊÇÕûÐÍ¡£Í¬Ñù, pµÄ×óÖµµÄÀàÐÍÊÇÖ¸ÏòÒ»¸öÕ ......

cÓëc++µÄstaticº¯Êý


cÓëc++ staticº¯ÊýµÄÇø±ð
±¾ÎÄת×Ô£ºhttp://blog.csdn.net/lipps/archive/2007/05/18/1615419.aspx
static¹Ø¼ü×ÖÊÇC, C++Öж¼´æÔڵĹؼü×Ö, ËüÖ÷ÒªÓÐÈýÖÖʹÓ÷½Ê½, ÆäÖÐǰÁ½ÖÖÖ»Ö¸ÔÚCÓïÑÔÖÐʹÓÃ, µÚÈýÖÖÔÚC++ÖÐʹÓÃ(C,C++ÖоßÌåϸ΢²Ù×÷²»¾¡Ïàͬ, ±¾ÎÄÒÔC++Ϊ׼).
(1)¾Ö²¿¾²Ì¬±äÁ¿
(2)Íⲿ¾²Ì¬±ä ......

¹ØÓÚ Ö¸Õë CµÄ¾«Ëè

ÒªÁ˽âÖ¸Õë,¶à¶àÉÙÉÙ»á³öÏÖһЩ±È½Ï¸´ÔÓµÄÀàÐÍ,ËùÒÔÎÒÏȽéÉÜ
Ò»ÏÂÈçºÎÍêÈ«Àí½âÒ»¸ö¸´ÔÓÀàÐÍ,ÒªÀí½â¸´ÔÓÀàÐÍÆäʵºÜ¼òµ¥,Ò»
¸öÀàÐÍÀï»á³öÏֺܶàÔËËã·û,ËûÃÇÒ²ÏñÆÕͨµÄ±í´ïʽһÑù,ÓÐÓÅÏÈ
¼¶,ÆäÓÅÏȼ¶ºÍÔËËãÓÅÏȼ¶Ò»Ñù,ËùÒÔÎÒ×ܽáÁËÒ»ÏÂÆäÔ­Ôò:
´Ó±äÁ¿Ãû´¦Æð,¸ù¾ÝÔËËã·ûÓÅÏȼ¶½áºÏ,Ò»²½Ò»²½·ÖÎö.
ÏÂÃæÈÃÎÒÃÇÏÈ´Ó¼òµ¥µÄÀàÐ ......

GNU C LIB

×ÔÓɵĸèÒ¥

¡¡¡¡±¾ÊéÊÇ×ÔÓÉÈí¼þ´ÔÊéµÄÒ»²¿·Ö£¬Ò²ÊÇÒ»Ê××ÔÓɵĸèÒ¥¡£
¡¡¡¡±¾ÊéÖвûÊöµÄGNU C¿â£¬¶¨ÒåÁËËùÓÐÔÚISO C±ê×¼Ëù¹æ¶¨µÄ£¬ÒÔ¼°POSIX±ê×¼¡¢ÆäËüÏà¹Ø±ê×¼ºÍUNIXϵͳËùÅÉÉúµÄ±ê×¼Öж¨ÒåµÄËùÓк¯Êý£¬ÎªGNU²Ù×÷ϵͳËùÖ§³Ö¡£
C³ÌÐòÉè¼ÆÓïÑÔÌṩÖîÈçÊäÈë/Êä³ö¡ ......

ÔÚAIX»úÆ÷ÉϵÄC³ÌÐò

¡¾checkpass.c¡¿
#include <stdio.h>
#include <string.h>
 
int checkpass(void){
   int x;
   char a[9];
   x = 0;
   fprintf(stderr,"a at %p and\nx at %p\n", (void *)a, (void *)&x);
   printf("Enter a short word: ");
&nbs ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ