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) Ö´ÐÐ
Ïà¹ØÎĵµ£º
Data Type Ranges
C/C++ recognizes the types shown in the table below.
Type Name Bytes Other Names Range of Values
&nb ......
Ŀǰ¸÷ÖÖ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£®½ø³ÌºÍÏ̵߳IJî±ð¡£
Ïß³ÌÊÇÖ¸½ø³ÌÄÚµÄÒ»¸öÖ´Ðе¥Ôª,Ò²Êǽø³ÌÄڵĿɵ÷¶ÈʵÌå.
Óë½ø³ÌµÄÇø±ð:
(1)µ÷¶È£ºÏß³Ì×÷Ϊµ÷¶ÈºÍ·ÖÅäµÄ»ù±¾µ¥Î»£¬½ø³Ì×÷ΪӵÓÐ×ÊÔ´µÄ»ù±¾µ¥Î»
(2)²¢·¢ÐÔ£º²»½ö½ø³ÌÖ®¼ä¿ÉÒÔ²¢·¢Ö´ÐУ¬Í¬Ò»¸ö½ø³ÌµÄ¶à¸öÏß³ÌÖ®¼äÒ²¿É²¢·¢Ö´ÐÐ
(3)ÓµÓÐ×ÊÔ´£º½ø³ÌÊÇÓµÓÐ×ÊÔ´µÄ¶ÀÁ¢µ¥Î»£¬Ï̲߳»ÓµÓÐϵͳ×ÊÔ´£¬µ«¿ÉÒ ......
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <conio.h>
typedef struct {
short int pitch;
short int duration;
} NOTE;
NOTE notes[] = {{14, 500}, {16, 500}, {12, 500 ......
......