ÔÚEclipseÖпª·¢C/C++ÏîÄ¿ תÌû
C/C++ development with the Eclipse Platform
Pawel Leszek
ÕªÒª:ͨ¹ý±¾ÎÄÄ㽫»ñµÃÈçºÎÔÚEclipseƽ̨ÉÏ¿ª·¢C/C++ÏîÄ¿µÄ×ÜÌåÈÏʶ¡£ËäÈ»EclipseÖ÷Òª±»ÓÃÀ´¿ª·¢JavaÏîÄ¿£¬µ«ËüµÄ¿ò¼ÜʹµÃËüºÜÈÝÒ×ʵÏÖ¶ÔÆäËû¿ª·¢ÓïÑÔµÄÖ§³Ö¡£ÔÚÕâƪÎÄÕÂÀÄ㽫ѧ»áÈçºÎʹÓÃCDT(C/C++ Development Toolkit)£¬Ò»¸öÔÚEclipseƽ̨ÉÏ×îÊÊÓõÄC/C++¹¤¾ß°ü¡£
C/C++ÓïÑÔÊÇÊÀ½çÉÏ×îÁ÷ÐеijÌÐò¿ª·¢ÓïÑÔ£¬ËùÒÔEclipseÌṩ¶ÔC/C++ÓïÑÔµÄÖ§³ÖÒ²¾Í²»×ãΪÆæÁË¡£ÓÉÓÚEclipseÖ»ÊÇΪ¿ª·¢¹¤¾ßÌṩһ¸ö¿ò¼Ü£¬ËùÒÔËü±ØÐë½èÖúÍⲿ²å¼þµÄÐÎʽʵÏÖ¶ÔC/C++ÓïÑԵļä½ÓÖ§³Ö¡£ÕâƪÎÄÕ¸æËßÄãÈçºÎʹÓÃCDT£¬Ò»¸öÓÃÓÚEclipseƽ̨µÄC/C++¿ª·¢µÄ²å¼þ×é¡£CDTÏîÄ¿(¼û±¾ÎĺóÃæµÄResource²¿·Ö)µÄÄ¿±êÊÇΪEclipseƽ̨Ìṩһ¸öÍêÈ«ÒâÒåÉϵÄC/C++¼¯³É¿ª·¢»·¾³¡£ËäÈ»Õû¸öÏîĿרעÓÚLinuxƽ̨£¬µ«Êµ¼ÊÉÏ£¬ÔÚÄÇЩÌṩÁËGNU¿ª·¢¹¤¾ßµÄƽ̨ÉÏ£¬CDT¶¼¿ÉÒÔÔËÐеúܺ㬰üÀ¨Win32(Win 95/98/Me/NT/2000/XP)£¬QNX NeutrinoºÍSolarisƽ̨µÈ¡£
CDTÊÇÒ»¸ö¿ªÔ´ÏîÄ¿(»ùÓÚCPL)£¬´¿´âÓÉJavaÓïÑÔʵÏÖ¡£ÕâЩ²å¼þÔÚEclipse¹¤×÷ÇøÖÐÌí¼ÓÁËÒ»¸öC/C++¿ª·¢Êӽǣ¬°üÀ¨Ò»ÏµÁеÄÊÓͼ(Views)ºÍÏòµ¼(Wizards)£¬ÒÔ¼°Ò»Ð©¸ß¼¶µÄ±à¼ºÍµ÷ÊÔÖ§³ÖµÈ£¬ÒÔʵÏÖ¶ÔC/C++¿ª·¢µÄÈ«ÃæÖ§³Ö¡£
ÓÉÓÚÆ临ÔÓÐÔ£¬CDT±»·Ö¸îΪÈô¸É¸ö×é¼þ£¬Ã¿Ò»¸ö×é¼þ¶¼ÒÔÒ»¸ö¶ÀÁ¢²å¼þµÄÐÎʽ´æÔÚ¡£Ã¿¸ö×é¼þ¶¼ÊÇÒ»¸ö¶ÀÁ¢µÄÏîÄ¿£¬ÓÐ×Ô¼ºµÄÌá½»Õß¡¢³ô³æ·ÖÀàºÍÓʼþÁбíµÈ¡£µ«ÊÇ£¬Ã¿¸ö×é¼þ¶¼ÊÇCDTÕý³£ÔËÐв»¿É»òȱµÄ¡£ÏÂÃæÊÇÒ»¸öÍêÕûµÄCDT²å¼þÁбí:
l Primary CDT plug-in: ΪCDT²å¼þÌṩһ¸ö¿ò¼Ü£»
l CDT Feature Eclipse: CDTµÄÌØÐÔ×é¼þ£»
l CDT Core: ÌṩºËÐÄÄ£ÐÍ¡¢CDOMºÍºËÐÄ×é¼þ£»
l CDT UI: CDTµÄºËÐÄUI¡¢ÊÓͼ¡¢±à¼Æ÷¡¢Ïòµ¼£»
l CDT Launch: ΪÍⲿ¹¤¾ßÖîÈç±àÒëÆ÷ºÍµ÷ÊÔÆ÷ÌṩLaunch»úÖÆ£»
l CDT Debug Core: Ìṩµ÷ÊÔ¹¦ÄÜ£»
l CDT Debug UI: ΪCDTµ÷ÊÔ±à¼Æ÷¡¢ÊÓͼºÍÏòµ¼ÌṩÓû§½çÃ棻
l &nbs
Ïà¹ØÎĵµ£º
ÁËCÈ»ºóC++£¬È»ºóMFC/Windows,È»ºóÊÇC#,ÆäÖÐÊý¾ÝÀàÐͺܶ࣬ÓÉ»ù±¾ÀàÐÍÑÜÉúµÄtypedefÀàÐÍÒ²N¶à¡£ÊìÖª»ù±¾Êý¾ÝÀàÐÍÊÇÎÒÃÇÕýÈ·±í´ïʵ¼ÊÎÊÌâÖи÷ÖÖÊý¾ÝµÄÇ°ÌᣬÒò´ËÎÒ·ÖÀà×ܽáÁËÒ»ÏÂC/C++/Windows /C#»ù±¾Êý¾ÝÀàÐÍ£¬ÒÔ±ãÈÕºó²éÔÄ¡£
ANSI C/C++»ù±¾Êý¾ÝÀàÐÍ£º
Type
Size
Ê ......
int arr[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++)+=123;
printf("%d,%d",*ptr,*(++ptr));
´ËÌâ×îºóµÄ½á¹ûÊÇ8£¬8.
Õ§¿´½á¹ûÓ¦¸ÃÊÇ7ºÍ8¡£
ÔÀí£º
ÒòΪËüÃÇ×÷ΪprintfµÄ²ÎÊý£¬º¯Êýprintf´Ó×óÍùÓÒ¶ÁÈ¡£¬È»ºó½«ÏȶÁÈ¡·Åµ½Õ»µ×£¬×îºó¶ÁÈ¡µÄ·ÅÔÚÕ»¶¥£¬´¦ÀíʱºòÊÇ´ÓÕ»¶¥¿ªÊ¼µÄ£¬ËùÓÐÎÒÃÇ¿´¼ûµÄ½á¹ûÊÇ£¬´ÓÓұ߿ªÊ¼´¦ÀíµÄ¡£ ......
Õâ¸ö·½¿éÓÎÏ·ÊÇÓÃlinuxÖն˵Ĺâ±ê¿ØÖÆ¡¢ÑÕÉ«ÉèÖÃ×öµÄ
(ÌíÁ˸ö¹¦ÄÜ£¬×ÖĸPÔÝÍ£¡¢»Ö¸´ÓÎÏ·)
Óà A S D W ¿ØÖÆÒƶ¯¡¢×ªÏò£¬¿Õ¸ñ¼üÏÂ×¹µ½µ×£»
linuxµÄÒì²½aioº¯Êý½â¾öÁ˺ܶàÂé·³£»
ÓÃÁ˸ö¼òµ¥µÄÄ£°åµ¥Àýģʽ£¬¼Ì³ÐËü¾Í¿ÉÒÔ£»
¶ÔPOSIXÏ̼߳òµ¥·â×°³ÉjavaÏ߳̽ӿڣ»
#include <memory>
#include "Tetris.h"
#include ......
ʱ³£ÔÚcppµÄ´úÂëÖ®Öп´µ½ÕâÑùµÄ´úÂë:
#ifdef __cplusplus
extern "C" {
#endif
//Ò»¶Î´úÂë
#ifdef __cplusplus
}
#endif
ÕâÑùµÄ´úÂëµ½µ×ÊÇʲôÒâ˼ÄØ£¿Ê×ÏÈ£¬__cplusplusÊÇcppÖеÄ×Ô¶¨Òåºê£¬ÄÇô¶¨ÒåÁËÕâ¸öºêµÄ»°±íʾÕâÊÇÒ»¶ÎcppµÄ´úÂ룬Ҳ¾ÍÊÇ˵£¬ÉÏÃæµÄ´úÂëµÄº ......
ÏÂÃæÕâ¶Î´úÂëÓÐɶ´íÎó£¿
#if ULONG_MAX == 0xFFFFFFFF
inline unsigned long byte_swap(unsigned long x) { return __builtin_bswap32(x); }
inline long byte_swap(long x) { return __builtin_bswap32(x); }
#else
inline unsigned long byte_swap(unsigned long x) { return __builtin_bswap64(x); }
inline long ......