C/C++¶¨ÒåÈ«¾Ö±äÁ¿/³£Á¿¼¸ÖÖ·½·¨µÄÇø±ð
. ±àÒëµ¥Ôª(Ä£¿é)£º
ÔÚIDE¿ª·¢¹¤¾ß´óÐÐÆäµÀµÄ½ñÌ죬¶ÔÓÚ±àÒëµÄһЩ¸ÅÄîºÜ¶àÈËÒѾ²»ÔÙÇå³þÁË£¬ºÜ¶à³ÌÐòÔ±×îŵľÍÊÇ´¦ÀíÁ¬½Ó´íÎó(LINK ERROR), ÒòΪËü²»Ïñ±àÒë´íÎóÄÇÑù¿ÉÒÔ¸ø³öÄã³ÌÐò´íÎóµÄ¾ßÌåλÖã¬Äã³£³£¶ÔÕâÖÖ´íÎó¸Ðµ½°ÃÄÕ£¬µ«ÊÇÈç¹ûÄã¾³£Ê¹ÓÃgcc£¬makefileµÈ¹¤¾ßÔÚlinux»òÕßǶÈëʽÏÂ×ö¿ª·¢¹¤×÷µÄ»°£¬ÄÇôÄã¿ÉÄܷdz£µÄÀí½â±àÒëÓëÁ¬½ÓµÄÇø±ð£¡µ±ÔÚVCÕâÑùµÄ¿ª·¢¹¤¾ßÉϱàдÍê´úÂ룬µã»÷±àÒë°´Å¥×¼±¸Éú³ÉexeÎļþʱ£¬VCÆäʵ×öÁËÁ½²½¹¤×÷£¬µÚÒ»²½£¬½«Ã¿¸ö.cpp(.c)ºÍÏàÓ¦.hÎļþ±àÒë³ÉobjÎļþ£»µÚ¶þ²½£¬½«¹¤³ÌÖÐËùÓеÄobjÎļþ½øÐÐLINKÉú³É×îÖÕµÄ.exeÎļþ£¬ÄÇô´íÎó¾ÍÓпÉÄÜÔÚÁ½¸öµØ·½²úÉú£¬Ò»¸öÊDZàÒëʱµÄ´íÎó£¬Õâ¸öÖ÷ÒªÊÇÓï·¨´íÎó£¬ÁíÒ»¸öÊÇÁ¬½Ó´íÎó£¬Ö÷ÒªÊÇÖØ¸´¶¨Òå±äÁ¿µÈ¡£ÎÒÃÇËù˵µÄ±àÒëµ¥Ôª¾ÍÊÇÖ¸ÔÚ±àÒë½×¶ÎÉú³ÉµÄÿ¸öobjÎļþ£¬Ò»¸öobjÎļþ¾ÍÊÇÒ»¸ö±àÒëµ¥Ôª£¬Ò²¾ÍÊÇ˵һ¸öcpp(.c)ºÍËüÏàÓ¦µÄ.hÎļþ¹²Í¬×é³ÉÁËÒ»¸ö±àÒëµ¥Ôª£¬Ò»¸ö¹¤³ÌÓɺܶà¸ö±àÒëµ¥Ôª×é³É£¬Ã¿¸öobjÎļþÀï°üº¬Á˱äÁ¿´æ´¢µÄÏà¶ÔµØÖ·µÈ ¡£
2. ÉùÃ÷Ó붨ÒåµÄÇø±ð
º¯Êý»ò±äÁ¿ÔÚÉùÃ÷ʱ£¬²¢Ã»ÓиøËüʵ¼ÊµÄÎïÀíÄÚ´æ¿Õ¼ä£¬ËüÓÐʱºò¿ÉÒÔ±£Ö¤ÄãµÄ³ÌÐò±àÒëͨ¹ý£¬ µ«Êǵ±º¯Êý»ò±äÁ¿¶¨ÒåµÄʱºò£¬Ëü¾ÍÔÚÄÚ´æÖÐÓÐÁËʵ¼ÊµÄÎïÀí¿Õ¼ä£¬Èç¹ûÄãÔÚ±àÒëÄ£¿éÖÐÒýÓõÄÍⲿ±äÁ¿Ã»ÓÐÔÚÕû¸ö¹¤³ÌÖÐÈκÎÒ»¸öµØ·½¶¨ÒåµÄ»°£¬ ÄÇô¼´Ê¹ËüÔÚ±àÒëʱ¿ÉÒÔͨ¹ý£¬ÔÚÁ¬½ÓʱҲ»á±¨´í£¬ÒòΪ³ÌÐòÔÚÄÚ´æÖÐÕÒ²»µ½Õâ¸ö±äÁ¿£¡ÄãÒ²¿ÉÒÔÕâÑùÀí½â£¬ ¶Ôͬһ¸ö±äÁ¿»òº¯ÊýµÄÉùÃ÷¿ÉÒÔÓжà´Î£¬¶ø¶¨ÒåÖ»ÄÜÓÐÒ»´Î!
3. externµÄ×÷ÓÃ
externÓÐÁ½¸ö×÷Ó㬵ÚÒ»¸ö,µ±ËüÓë"C"Ò»ÆðÁ¬ÓÃʱ£¬Èç: extern "C" void fun(int a, int b); Ôò¸æËß±àÒëÆ÷ÔÚ±àÒëfunÕâ¸öº¯ÊýÃûʱ°´×ÅCµÄ¹æÔòÈ¥·ÒëÏàÓ¦µÄº¯ÊýÃû¶ø²»ÊÇC++µÄ£¬ C++µÄ¹æÔòÔÚ·ÒëÕâ¸öº¯ÊýÃûʱ»á°ÑfunÕâ¸öÃû×Ö±äµÃÃæÄ¿È«·Ç£¬¿ÉÄÜÊÇfun@aBc_int_int#%$Ò²¿ÉÄÜÊDZðµÄ£¬ÕâÒª¿´±àÒëÆ÷µÄ"Æ¢Æø"ÁË(²»Í¬µÄ±àÒëÆ÷²ÉÓõķ½·¨²»Ò»Ñù)£¬ÎªÊ²Ã´Õâô×öÄØ£¬ÒòΪC++Ö§³Öº¯ÊýµÄÖØÔØ°¡£¬ÔÚÕâÀﲻȥ¹ý¶àµÄÂÛÊöÕâ¸öÎÊÌ⣬Èç¹ûÄãÓÐÐËȤ¿ÉÒÔÈ¥ÍøÉÏËÑË÷£¬ÏàÐÅÄã¿ÉÒԵõ½ÂúÒâµÄ½âÊÍ!
µ±extern²»Óë"C"ÔÚÒ»ÆðÐÞÊαäÁ¿»òº¯Êýʱ£¬ÈçÔÚÍ·ÎļþÖÐ: extern int g_Int; ËüµÄ×÷ÓþÍÊÇÉùÃ÷º¯Êý»òÈ«¾Ö±äÁ¿µÄ×÷Ó÷¶Î§µÄ¹Ø¼ü×Ö£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿ÉÒÔÔÚ±¾Ä£¿é»îÆäËûÄ£¿éÖÐʹÓ㬼ÇסËüÊÇÒ»¸öÉùÃ÷²»ÊǶ¨Òå!Ò²¾ÍÊÇ˵BÄ£¿é(±àÒëµ¥Ôª)ÒªÊÇÒýÓÃÄ£¿é(±àÒëµ¥
Ïà¹ØÎĵµ£º
C µ÷ÓÃ Fortran
c2ffn.f
SUBROUTINE NAMEAGE(NAME, NLEN, AGE, TEMP)
CHARACTER*(*) NAME
INTEGER NLEN,AGE
REAL TEMP
C
WRITE(6,1000) NAME(1:NLEN),AGE,TEMP ......
VC2005ÖÐCÔËÐÐʱ¿âÑ¡Ôñ²»µ±µ¼ÖµÄÁ´½ÓÎÊÌâ¼°½â¾ö·½°¸
ÔÚMicrosoft Visual C++ 2005ÖУ¬Èç¹ûÒ»¸öEXEÖ÷¹¤³ÌÓ¦ÓóÌÐòҪʹÓÃÒ»¸ö»ò¼¸¸ö¾²Ì¬LIB¿â£¬ÄÇôÁ´½Óʱ¾³£»áÓöµ½·ûºÅÖØ¸´¶¨ÒåµÄ´íÎó£¬Èç¹ûÅųý¿â²»µ±ÓÖ»áÓöµ½ÕÒ²»µ½Ä³Ð©·ûºÅµÄÎÊÌ⣬Èç¹ûÇ¿ÖÆÊ¹Óà /forceÑ¡ÏîÁ´½Ó¹ýÈ¥ÓÖ¿ÉÄÜ·¢ÉúһЩÒâÏë²»µ½µÄÔËÐÐʱÎÊÌâ¡£
  ......
½éÉÜ
ͨ³££¬Ñз¢ÈËԱʹÓõÄÊÇT-SQLÀ´´´½¨SQL ServerµÄ´æ´¢¹ý³Ì¡¢º¯ÊýºÍ´¥·¢Æ÷¡£ ¶øÏÖÔÚµÄSQL Server 2005ÒÑÍêȫ֧³Ö.NETͨÓÃÓïÑÔÔËÐÐʱ£¨CLR£©ÁË¡£ Õâ¾ÍÒâζ×Å£¬ÄúÄܹ»Ê¹ÓÃ.NETµÄÓïÑÔ£¬ÈçC#¡¢VB.NETÖ®ÀàµÄÀ´Ñз¢SQL ServerµÄ´æ´¢¹ý³Ì¡¢º¯ÊýºÍ´¥·¢Æ÷¡£ SQL Server ºÍ CLR µÄ¼¯³É¸øÎÒÃÇ´øÀ´ÁËn¶àºÃ´¦£¬Èçʵʱ±àÒë¡¢ÀàÐͰ²È«¡ ......
C×Ö·û´®´¦Àíº¯ÊýµÄʵÏÖ£¨Linux£©
#include <stddef.h>
char * ___strtok = NULL;
char * strcpy(char * dest,const char *src)
{
char *tmp = dest;
while ((*dest++ = *src++) != '\0')
/* nothing */;
return tmp;
}
char * strncpy(char * dest,const char *src,size_t count)
{
char *tmp = d ......