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) Ö´ÐÐ
Ïà¹ØÎĵµ£º
Ŀǰ¸÷ÖÖLinux·¢Ðа涼֧³ÖUTF-8±àÂ룬µ±Ç°ÏµÍ³µÄÓïÑÔºÍ×Ö·û±àÂëÉèÖñ£´æÔÚһЩ»·¾³±äÁ¿ÖУ¬¿ÉÒÔͨ¹ýlocaleÃüÁî²é¿´£º
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPE ......
ÒªÁ˽âÖ¸Õë,¶à¶àÉÙÉÙ»á³öÏÖһЩ±È½Ï¸´ÔÓµÄÀàÐÍ,ËùÒÔÎÒÏȽéÉÜ
Ò»ÏÂÈçºÎÍêÈ«Àí½âÒ»¸ö¸´ÔÓÀàÐÍ,ÒªÀí½â¸´ÔÓÀàÐÍÆäʵºÜ¼òµ¥,Ò»
¸öÀàÐÍÀï»á³öÏֺܶàÔËËã·û,ËûÃÇÒ²ÏñÆÕͨµÄ±í´ïʽһÑù,ÓÐÓÅÏÈ
¼¶,ÆäÓÅÏȼ¶ºÍÔËËãÓÅÏȼ¶Ò»Ñù,ËùÒÔÎÒ×ܽáÁËÒ»ÏÂÆäÔÔò:
´Ó±äÁ¿Ãû´¦Æð,¸ù¾ÝÔËËã·ûÓÅÏȼ¶½áºÏ,Ò»²½Ò»²½·ÖÎö.
ÏÂÃæÈÃÎÒÃÇÏÈ´Ó¼òµ¥µÄÀàÐ ......
1. ×¼±¸¹¤×÷£º
¿ª·¢°åµÄipÉèÖÃ
gzsd> net set ipaddr 192.168.0.11 ÉèÖÿª·¢°åµÄIP
gzsd> net set serverip 192.169.0.10 ÉèÖÃtftp serverµÄIP
gzsd> net set netmask 255.255.255.0 ÉèÖÃ×ÓÍøÑÚÂë
gzsd> net save ±£´æÉèÖÃ
gzsd> net ping XXX ²âÊÔÁ¬½Ó×´¿ö
°²×°tftp·þÎñÆ÷
windowsÏÂ
ÔËÐйâÅ̹¤¾ß ......
¡¾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 ......
It is better to have the ability of fast learning
ÓÐÒ»ÌìÄã覺µÃÉõ麼¶¼ÖªµÀÁË ¿É±¯
ÓÐÒ»ÌìÄã卻發現ÄãÉõ麼¶¼²»會 ¼ÓÓͰÉ
ÓÐÒ»ÌìÄã發現ÄãÓÖÉõ麼¶¼會ÁË 繼續
ÓÐÒ»ÌìÄã發現ÄãÉõ麼¶¼²»會ÁË ³É¹¦ÁË
......