luaºÍC½»»¥¿ò¼Ü
1¡¢´íÎó(err_return)µÄºê¶¨Òå
#define err_return(num,fmt,args) \
do
{
printf("[%s:%d]"fmt"\n",__FILE__,__LINE__,##args);return(num);
} while(0)
-1 ÊÇreturnµÄ·µ»ØÖµ£¬±íʾÓдíÎó£»
fmt ÊÇÒ»¸ö×Ö·û´®£¬ÓÃÓÚ´òÓ¡´íÎóÐÅÏ¢£»
args±íʾ²ÎÊýµÄ¸öÊý£»--Õâ¸öÓÐÒÉÎÊ£¬__FILE__,__LINE__,##args ÊÇʲôÒâ˼£¿
ÁíÍ⣺ while(0)ÊÇʲôÒâ˼£¬Ê²Ã´Ìõ¼þÏ¿ÉÒÔÍ˳ö£¿
¾ßÌåµ÷ÓÃʵÀý£ºerr_return(-1,"luaL_newstat() failed",1);
²¹³ä½âÊÍ£º
//__FILE__ ½øÐбàÒëµÄÔ´ÎļþÃû
//__LINE__ Îļþµ±Ç°ÓеÄÐкÅ(×¢Òâ:ÊÇ"µ±Ç°")
//__DATE__ Îļþ±»±àÒëµÄÈÕÆÚ
//__TIME__ Îļþ±»±àÒëµÄʱ¼ä
##ÊÇ×Ö·ûÆ´½Ó
ÏñÕâÑù
¡¡¡¡ÔÚ#defineÖУ¬±ê×¼Ö»¶¨ÒåÁË#ºÍ##Á½ÖÖ²Ù×÷¡£#ÓÃÀ´°Ñ²ÎÊýת»»³É×Ö·û´®£¬##ÔòÓÃÀ´Á¬½ÓÁ½¸öǰºóÁ½¸ö²ÎÊý£¬°ÑËüÃDZä³ÉÒ»¸ö×Ö·û´®¡£ eg.ab##cd ¾ÍÊÇabcd, m##1 ¾ÍÊÇm1;
ÁíÍ⣺ while(0)ÊÇʲôÒâ˼£¬Ê²Ã´Ìõ¼þÏ¿ÉÒÔÍ˳ö£¿
Ö±½ÓÍ˳ö£¬0Ϊfalse
0ÊÇfalseËùÒÔÖ»Ö´ÐÐÒ»´Îdo¾ÍÍ˳öÁË
while()Ñ»·½øÈëµÄÌõ¼þÊÇ£¬Ìõ¼þΪTRUE£¬ÒòΪ0ÊÇFALSE£¬ËùÒÔÑ»·Ò»´Î¾ÍÍ˳ö£»
do~while() Ñ»·Ö´ÐÐÒ»´ÎdoÀïÃæµÄÄÚÈÝÈ»ºóÍ˳ö£¬Èç¹ûÖ±½ÓÊÇwhile()Ñ»·£¬Ôò²»»á½øÈëÑ»·Ì壻
2¡¢ÔÚluaÖе÷ÓÃCº¯Êý£º
£¨1£©CÖÐдºÃluaÒªµ÷Óõĺ¯Êý
//luaÖÐÒªµ÷ÓõÄcº¯Êý¶¨Òå,ʵÏÖ¼Ó·¨
int csum(lua_State* l) //¶¨Ò庯Êý£¬º¯Êý²ÎÊýÊÇlua_State* l£¬ÕâÒ²ÊÇÿ¸öluaÒªµ÷ÓõÄCº¯ÊýµÄд·¨£»
{
int a = lua_tointeger(l,1) ; //lua_tointeger()»ñµÃÕûÐÍ·µ»ØÖµ£¬Ò»°ãÊǰÑlua´«½øÈ¥µÄÊýÖµ£¨²ÎÊý»òÕßÈ«¾Ö±äÁ¿£©×ª»»³ÉÕûÐΣ»
int b = lua_tointeger(l,2) ; //ÕâÀïÊÇÖ¸µÚ¶þ¸ö²ÎÊý£¬±»×ª»¯³ÉÕûÐΣ»
lua_pushinteger(l,a+b) ; //lua_pushinteger()ÕâÀïÊǰѷµ»ØÖµ£¨a+b£©Ñ¹ÈëÕ»
return 1 ; //·µ»ØÖµµÄÊýÁ¿£»
}
¿É¼û£¬luaµ÷ÓÃCº¯Êý£¬Ê×ÏÈÊÇҪдºÃCÖеĺ¯ÊýµÄ£¬Ê×ÏȰѺ¯Êý²ÎÊýת»¯³ÉÏëÒªµÄÀàÐÍ£¬È»ºó°Ñ·µ»ØÖµ±í´ïʽѹ
Ïà¹ØÎĵµ£º
¹ØÓÚcµÄ¶¯Ì¬ÄÚ´æ¹ÜÀíÒ»Ö±ÊǸö¾¾Ã²»Ë¥µÄ»°Ìâ,ÃæÊÔÒ²ÊÇ»ù±¾É϶¼»á¿¼µÄ,±¾À´¸Ð¾õÒѾÃ÷°×ÁË,µ«ÊǽñÌìʹÓõÄʱºòÒ»²»Ð¡Ðĵ¼Ö³ÌÐò±ÀÀ£ÁË,Òò´ËÉîÈëµÄÈ¥²éÁËÏÂ×ÊÁÏ,ÊÕ»ñ²»ÉÙ...Ìù³öÀ´Óë´ó¼Ò·ÖÏí...
ÏÈÌù¸ö´íÎó´úÂë:
int * ptr = (int *)mal ......
extern "C"
¡¡¡¡extern "C" °üº¬Ë«Öغ¬Ò壬´Ó×ÖÃæÉϼ´¿ÉµÃµ½£ºÊ×ÏÈ£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä´Î£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£ÈÃÎÒÃÇÀ´Ïêϸ½â¶ÁÕâÁ½Öغ¬Òå¡£
¡¡¡¡£¨1£© ±»extern "C"ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵ģ»
¡¡¡¡externÊÇC/C++ÓïÑÔÖбí ......
Ò»¡¢¸ÅÊö
̸µ½ÔÚlinuxϵͳϱàдI2CÇý¶¯£¬Ä¿Ç°Ö÷ÒªÓÐÁ½ÖÖ·½Ê½£¬Ò»ÖÖÊǰÑI2CÉ豸µ±×÷Ò»¸öÆÕͨµÄ×Ö·ûÉ豸À´´¦Àí£¬ÁíÒ»ÖÖÊÇÀûÓÃlinux I2CÇý¶¯Ìåϵ½á¹¹À´Íê³É¡£ÏÂÃæ±È½ÏÏÂÕâÁ½ÖÖÇý¶¯¡£
µÚÒ»ÖÖ·½·¨µÄºÃ´¦£¨¶ÔÓ¦µÚ¶þÖÖ·½·¨µÄÁÓÊÆ£©ÓУº
¡ñ ˼·±È½ÏÖ±½Ó£¬²»ÐèÒª ......
The meaning of the c in calloc was vividly discussed in comp.lang.c in October 2000 (see here), with both clear (because, unlike malloc, calloc clears the memory it returns) and count (because, unlike malloc, calloc is passed a count of elements to allocate) suggested as possible explanations, howev ......
Ò»Ö±ÏëдһЩ±È½ÏCºÍC++Éè¼ÆÓë±à³Ì·ç¸ñµÄÎÄ×Ö£¬ÕýºÃ½üÀ´¹¤×÷ÈÎÎñ²»¶à£¬Äܹ»ÓÐʱ¼äÖØÐÂÕûÀíÒ»ÏÂ×Ô¼ºËùѧµÄ¶«¶«£¬ÓÚÊDZã¾ö¶¨¿ªÊ¼Ð´Õâ¸öÌâÄ¿£¬¶øÄ¿µÄ½ö½öÖ»ÊÇ´òËãÄܾÍÕâ¸ö»°ÌâºÍ´ó¼ÒÌÖÂÛÌÖÂÛ£¬Å×שÒýÓñ¡¢Ôö³¤¸öÈ˵ļûʶ¡£
Ê×ÏÈÏë˵Ã÷һϣ¬¸öÈËÊÇC++Éè¼Æ¡¢±à³Ì·ç¸ñµÄ¼á¶¨Óµ»¤Õߣ¬ËùÒÔÎҵĹ۵ãÄÑÃâ´øÓиöÈËµÄÆ«ºÃ£¬Èç¹ûÄú²»ÔÞÍ ......