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/c++ÓïÑÔµÄÌØÉ«£¬¶øÊý×éÃûÓëÖ¸ÕëÓÐÌ«¶àµÄÏàËÆ£¬ÉõÖÁºÜ¶àʱºò£¬Êý×éÃû¿ÉÒÔ×÷ΪָÕëʹÓá£ÓÚÊǺõ£¬ºÜ¶à³ÌÐòÉè¼ÆÕ߾ͱ»¸ãºýÍ¿ÁË¡£¶øÐí¶àµÄ´óѧÀÏʦ£¬ËûÃÇÔÚcÓïÑԵĽÌѧ¹ý³ÌÖÐÒ²´íÎóµÃ¸øÑ§Éú½²½â£º\"Êý×éÃû¾ÍÊÇÖ¸Õë\"¡£ºÜÐÒÔË£¬ÎҵĴóѧÀÏʦ¾ÍÊÇÆäÖÐÖ®Ò»¡£Ê±ÖÁ½ñÈÕ£¬ÎÒÈÕ¸´Ò»ÈյؽøÐÐ×Åc/c++ÏîÄ¿µÄ¿ª·¢£¬¶øÉí± ......
ÔÚÕâÀïÌùÉÏ×î½ü×Ô¼ºÃ¦»îµÄÓÃturbo C±àдµÄ“´ò×ÖÓÎÏ·”µÄÔ´´úÂ룺
#include<graphics.h>
#include<conio.h>
#include<STDLIB.h>
#include<dos.h>
#define BK_COLOR BLACK
#define CHAR_COLOR WHITE
#define C_COLOR BLUE
#define num 10
#define SPEED 3000
#define Esc 27
# ......
¡¾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 ......
±ê×¼C¿ØÖÆÌ¨³ÌÐòÒ²¿ÉÒÔ×Ô¶¨ÒåÎÄ×ÖÊä³öÑÕÉ«£¬ÈôòÓ¡ÐÅÏ¢¸üÏÊÃ÷£¬ÔÚdebugµÄʱºòÌØ±ðÓÐÓ᣷½·¨ºÜ¼òµ¥£º
ת×Ô£ºhttp://www.diybl.com/course/3_program/c/c_js/20090303/157456.html
ÏÈ´ÓÒ»¸öÀý×Ó¿ªÊ¼
printf("\033[31m ####----->> \033[32m" "hello\n" "\033[m");
ÑÕÉ«·ÖΪ±³¾°É«ºÍ×ÖÌåÉ«£¬30~39ÓÃÀ´ÉèÖÃ×ÖÌåÉ« ......
¡¡¡¡Ò»¡¢c³ÌÐò´æ´¢¿Õ¼ä²¼¾Ö
¡¡¡¡C³ÌÐòÒ»Ö±ÓÉÏÂÁв¿·Ö×é³É£º
¡¡¡¡1£©ÕýÎĶΗ—CPUÖ´ÐеĻúÆ÷Ö¸Á·Ö£»Ò»¸ö³ÌÐòÖ»ÓÐÒ»¸ö¸±±¾£»Ö»¶Á£¬·ÀÖ¹³ÌÐòÓÉÓÚÒâÍâʹʶøÐÞ¸Ä×ÔÉíÖ¸Á
¡¡¡¡2£©³õʼ»¯Êý¾Ý¶Î£¨Êý¾Ý¶Î£©——ÔÚ³ÌÐòÖÐËùÓи³Á˳õÖµµÄÈ«¾Ö±äÁ¿£¬´æ·ÅÔÚÕâÀï¡£
¡¡¡¡3£©·Ç³õʼ»¯Êý¾Ý¶Î£¨bss¶Î£©&mdas ......