C/C++º¯Êýµ÷ÓÃÔ¼¶¨Ö®¼äµÄת»»
CÓïÑԵijõѧÕß³£·¸µÄÒ»¸öʧÎóÊǵ÷ÓÃϵͳ»òµÚÈý·½APIʱÍüÁËÔÚº¯ÊýÉùÃ÷Öбê×¢WINAPIµ÷Ó÷½Ê½£¬¶ø²ËÄñC++³ÌÐòԱҲÿÿÀ§»óΪʲô³ÉÔ±º¯Êý±ØÐëָʾΪCALLBACKÔÙÌí¼Óstatic¹Ø¼ü×Ö²ÅÄÜ×÷Ϊ»Øµ÷º¯Êý¡£ÔÚx86ϵͳÖУ¬´æÔÚ¶àÖÖº¯Êýµ÷ÓÃÔ¼¶¨¡£Èç¹ûµ÷ÓÃÕßÓë±»µ÷ÓÃÕß²ÉÓò»Í¬µÄµ÷ÓÃÔ¼¶¨£¬ºÜ¿ÉÄܵ¼Ö¶ÑÕ»ÆÆ»µ¡¢·Ç·¨·ÃÎʵÈÖÂÃü´íÎó¡£
Ò²ÐíÄú»áµÃ³öÒ»¸ö½áÂÛ£¬³ý·Ç½èÖú»ã±àÖ¸Á·ñÔòµ÷ÓÃÔ¼¶¨Ö®¼äµÄת»»ÊDz»¿ÉÄܵġ£²»¹ýºÜ¶àÊÂÇé¶¼²»ÊǾø¶ÔµÄ¡£ÎÒÃÇÏÈ¿´ÏÂÃæµÄÀý×Ó£º
#include
int __cdecl CDeclFunction()
{
printf("from CDecl function\n");
return 1;
}
int main()
{
printf("Begin call STDCall function\n");
typedef int(__stdcall * STDCALLFUNCTION)();
STDCALLFUNCTION pfn =(STDCALLFUNCTION)CDeclFunction;
int i=pfn();
printf("End call STDCall function\n");
return i;
}
ÕâÊÇÒ»¸ö¼òµ¥µÄº¯Êýµ÷ÓõÄÀý×Ó£¬Î¨Ò»ÌرðµÄµØ·½ÊǺ¯Êý¶¨ÒåΪ__cdecl£¬¶øµ÷ÓÃʱ²ÉÓÃ__stdcall·½Ê½¡£ÎÒÃǰÑÕâ¶Î´úÂë±àÒëºóÖ´ÐС£àÀ£¬Ò»ÇÐÕý³£¡£Èç¹ûÄú²»·þÆø£¬ÔÙ¼ÓÒ»¸öforÑ»·¿´¿´J
ÎÒÃÇÔÙÀ´¿´ÁíÒ»¸ö¸üÌØ±ðµÄÀý×Ó£º
#include
int __stdcall StdCallFunction (int i, char* pszString)
{
printf("from STDCall function\n");
printf(pszString);
return i;
}
int main()
{
printf("Begin call FastCall function\n");
typedef int(__fastcall * FASTCALLFUNCTION)(int, int, int, char*);
FASTCALLFUNCTION pfn =(FASTCALLFUNCTION)StdCallFunction;
int i=pfn(0,0,3,"test\n");
printf("End call FastCall function\n");
return i;
}
Õâ´Î²»¹âµ÷Ó÷½Ê½²»Í¬£¬Á¬²ÎÊýµÄ¸öÊý¶¼²»Ò»Ñù¡£±ðµ£ÐÄ£¬ÎÒÃDZàÒëºóÖ´ÐС£»¹ÊÇÒ»ÇÐÕý³££¡
Èç¹ûÄú¶ÔÉÏÊöÁ½¸öÀý×Ó°Ù˼²»µÃÆä½âµÄ»°£¬ÏÖÔÚ¸ÃÊǽ⿪ÃÕµ×µÄʱºòÁË¡£Õâ¸öÃÕµ×¾ÍÊǺ¯Êýµ÷ÓÃÔ¼¶¨±¾Éí¡£ÍøÉϽéÉܵ÷ÓÃÔ¼¶¨µÄ×ÊÁÏÒѾÏ൱¶àÁË£¬²»¹ý¼¸ºõ¶¼²àÖØ±È½Ï¸÷ÖÖµ÷Ó÷½Ê½µÄ²î±ð£¬¶ø±¾ÎĽ«°ÑÖØµã·ÅÔÚÕâЩµ÷Ó÷½Ê½Ö®¼äµÄÁªÏµÉÏÃæ£¨ÕâÀïÒ²ÂÔÈ¥Öî¶àÓëÖ÷ÌâÎ޹صÄϸ½Ú£¬ÒªÏëÁ˽⺯Êýµ÷ÓÃÔ¼¶¨µÄËùÓз½Ê½£¬ÏàÓ¦µÄ»ã±à´úÂ룬ÒÔ¼°ÔÚ²ÎÊý»ò·µ»ØÖµ³¬¹ý32λµÈ¸´ÔÓÇé¿öµÄ´¦Àí·½Ê½£¬Çë²éÔı¾ÎÄÁгöµÄ²Î¿¼ÊéÄ¿£©¡£
µ÷Óú¯Êýʱ£¬ÐèÒª´«µÝ²ÎÊý£¬²¢½ÓÊÕ·µ»ØÖµ¡£¶ÔÓÚC++ ·Ç¾²Ì¬³ÉÔ±º¯Êý£¬»¹Òª¿¼ÂÇÈçºÎ´«µÝthisÖ¸Õë¡£ÕâҪô²ÉÓüĴæÆ÷£¬ÒªÃ´²ÉÓöÑÕ»¡£Èç¹û²ÉÓöÑÕ»£¬»¹Òª¿¼ÂÇÓÉ˸ºÔð»Ö¸´¶ÑÕ»µÄƽºâ¡£µ÷
Ïà¹ØÎĵµ£º
http://www.trendcaller.com/2009/05/hadoop-should-target-cllvm-not-java.html
Sunday, May 10, 2009
Hadoop should target C++/LLVM, not Java (because of watts)
< type="text/javascript">
digg_url="http://www.trendcaller.com/2009/05/hadoop-should-target-cllvm-not-java.html";
Over the years, ......
/*FIXME
ISO CÈç¹ûÄãÔÚmain()ÖÐд´úÂëµÄÖм䶨ÒåÁËÒ»¸ö¶ÔÓÚmain¶øÑÔµÄÈ«¾Ö±äÁ¿£¬¾Í»á±¨³öÕâ¸ö´íÎó¡£
*/
°ÑÕâ¸ö±äÁ¿¶¨Òåµ½mainº¯ÊýÖеÄ×îǰ·½£¬¾Í»áÐÞÕýÕâ¸ö´íÎó¡£
¶øÇÒΪÁË·ÀÖ¹³ö´í£¬É趨µÄÖ¸ÕëÖ®ºóÔÙÓвÎÊý´«ÈëmallocÖ®ºóÁ¢¼´¶ÔÓÚÖ¸ÕëÓèÒÔ¿Õ¼äµÄ´´½¨¡£·ÀÖ¹³öÏÖÖ¸Õëδ³õʼ»¯´Ó¶øÒýÆð½«À´¸³ÖµµÄʱºò½«¸ÃÖµ¸²¸ÇÁËÒѾΪ±¾ ......
ÔÚÕâ¶ùÏÂÔØ£ºcolor-theme
:
http://download.savannah.gnu.org/releases-noredirect/color-theme/
wget http://download.savannah.gnu.org/releases-noredirect/color-theme/color-theme-6.6.0.tar.gz
tar zxf color-theme-6.6.0.tar.gz -C ~/.emacs.d
ÔÚ.emacsÖмÓÈëÏÂÁÐÓï¾ä£º
;; corlor-theme ......
֮ǰд¹ýÒ»¸öʵÏÖÁËijÖÖ¹¦ÄܵÄjava³ÌÐò£¬µ«ÓÉÓÚ½üÈÕ“¹¤×÷”ÐèÒª£¬ÓÖÐèÒªÔÚc/c++ÖÐÖØÐÂʹÓøù¦ÄÜ¡£ÎªÁ˽Úʡʱ¼ä£¬ÎÒ²ÉÈ¡ÁËÔÚc/c++Öе÷ÓÃjava³ÌÐòµÄ·½·¨£¬µ«Ö®Ç°Ã»ÓнӴ¥¹ýÀàËÆµÄ¶«Î÷£¬µ½ÍøÉÏÒ»²é£¬¹ûÈ»ÓÐÀàËÆµÄ¶«Î÷£¬ÐÄÖаµÏ²ing...¡£²éµ½µÄ×ÊÁÏÖÐÓм¸¸ö²»´íµÄÍøÒ³£º
&nbs ......
ÕâÆªÈÕÖ¾»¹ÊÇÏÈ´ÓÒ»¸öÄܹ»ÔËÐÐÆðÀ´µÄÀý×Ó³ö·¢£¬Ò»µ©ÄÜ˳ÀûµÄ¿´µ½³ÌÐòµÄ³É¹¦ÔËÐУ¬ÄÇô½ÓÏÂÀ´µÄʼþÎÒÏëÓ¦¸ÃÊÇÎÊΪʲôÁË£¿ËƺõÕâÑù¸ü¼ÓÈÝÒ×Àí½âºÍÕÆÎÕ¡£
¶ÔÓÚsocket³ÌÐòµÄ¸ÅÄîÕâÀï¾Í²»¶àдÁË£¬µ«ÎÒÏàÐÅ£¬Èç¹ûÄÜ¿´ÍêÕâÕûƪÎÄÕ£¬ÎÒÏàÐŲ»»áÔÙÓÐÕâÑùµÄÒÉÎʵġ£
ÏÂÃæ½«±àдһ¸öc/s½á¹¹µÄ³ÌÐò£¬Ö÷Òª¹¦ÄÜÊÇclient½«Ïòserver·¢Ë ......