Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

extern "C" µÄÓÃÒâ

ǰЩÌ죬±à³ÌÐòÊÇÓõ½Á˺ܾÃÒÔǰдµÄC³ÌÐò£¬Ïë°ÑÀïÃæµÄº¯ÊýÀûÓÃÆðÀ´£¬Á¬½Ó·¢ÏÖ³öÏÖÁËÕÒ²»µ½¾ßÌ庯ÊýµÄ´íÎó£º
ÒÔÏÂÊǼÙÉè¾ÉµÄC³ÌÐò¿â
CµÄÍ·Îļþ
/*-----------c.h--------------*/
#ifndef _C_H_
#define _C_H_
extern int add(int x, int y);
#endifCµÄÔ´Îļþ
/*-----------c.c--------------*/
int add(int x, int y){
 return x+y;
}
C++µÄµ÷ÓÃ
/*-----------cpp.cpp--------------*/
#include "c.h"
void main()
{
 add(1, 0);
}
ÕâÑù±àÒë»á²úÉú´íÎócpp.obj : error LNK2001: unresolved external symbol "int __cdecl add(int,int)" (?add@@YAHHH@Z)£¬Ô­ÒòÊÇÕÒ²»µ½addµÄÄ¿±êÄ£¿é
Õâ²ÅÁîÎÒÏëÆðC++ÖØÔØµÄº¯ÊýÃüÃû·½Ê½ºÍCº¯ÊýµÄÃüÃû·½Ê½£¬ÈÃÎÒÃǻعËһϣºCÖк¯Êý±àÒëºóÃüÃû»áÔÚº¯ÊýÃûǰ¼ÓÒÔ"_",±ÈÈçaddº¯Êý±àÒë³ÉobjÎļþʱµÄʵ¼ÊÃüÃûΪ_add£¬¶øc++ÃüÃûÔò²»Í¬£¬ÎªÁËʵÏÖº¯ÊýÖØÔØÍ¬ÑùµÄº¯ÊýÃûaddÒò²ÎÊýµÄ²»Í¬»á±»±àÒë³É²»Í¬µÄÃû×Ö
ÀýÈç
int add(int , int)==>add@@YAHHH@Z,
float add(float , float )==>add@@YAMMM@Z,
ÒÔÉÏÊÇVC6µÄÃüÃû·½Ê½£¬²»Í¬µÄ±àÒëÆ÷»á²»Í¬£¬×ÜÖ®²»Í¬µÄ²ÎÊýͬÑùµÄº¯ÊýÃû½«±àÒë³É²»Í¬Ä¿±êÃû£¬ÒÔ±ãÓÚº¯ÊýÖØÔØÊǵ÷ÓþßÌåµÄº¯Êý¡£
±àÒëcpp.cppÖбàÒëÆ÷ÔÚcppÎļþÖз¢ÏÖadd(1, 0);µÄµ÷Óöøº¯ÊýÉùÃ÷Ϊextern int add(int x, int y);±àÒëÆ÷¾Í¾ö¶¨È¥ÕÒadd@@YAHHH@Z£¬¿ÉϧËûÕÒ²»µ½£¬ÒòΪCµÄÔ´Îļþ°Ñextern int add(int x, int y);±àÒë³É_addÁË£»
ΪÁ˽â¾öÕâ¸öÎÊÌâC++²ÉÓÃÁËextern "C",Õâ¾ÍÊÇÎÒÃǵÄÖ÷Ì⣬ÏëÒªÀûÓÃÒÔǰµÄC³ÌÐò¿â£¬ÄÇôÄã¾ÍҪѧ»áËü£¬ÎÒÃÇ¿ÉÒÔ¿´ÒÔϱê׼ͷÎļþÄã»á·¢ÏÖ£¬ºÜ¶àÍ·Îļþ¶¼ÓÐÒÔϵĽṹ
#ifndef __H
#define __H
#ifdef __cplusplus
extern "C" {
#endif
extern int f1(int, int);
extern int f2(int, int);
extern int f3(int, int);
 
#ifdef __cplusplus
}
#endif
#endif /*__H*/
Èç¹ûÎÒÃÇ·ÂÖÆ¸ÃÍ·Îļþ¿ÉÒԵõ½
#ifndef _C_H_
#define _C_H_
#ifdef __cplusplus
extern "C" {
#endif
extern int add(int, int);
#ifdef __cplusplus
}
#endif
#endif /* _C_H_ */
ÕâÑù±àÒë
/*-----------c.c--------------*/
int add(int x, int y){
return x+y;
}
ÕâʱԴÎļþΪ*.c£¬__cplusplusûÓб»¶¨Ò壬extern "C" {}ÕâʱûÓÐÉúЧ¶ÔÓÚCËû¿´µ½Ö»ÊÇextern int add(int, int);
addº¯Êý±àÒë³É_add(int, int);
¶ø±àÒëc++Ô´Îļþ
/*-----------cp


Ïà¹ØÎĵµ£º

C:Îļþ²Ù×÷ ¶Áд×Ö·ûÓë¶ÁдÐÐ(£¡£¡£¡ºÃ)

À´×Ô£ºhttp://zhangjunhd.blog.51cto.com/113473/100299 
1.¶Áд×Ö·ûº¯Êýputc()Óëgetc()
ÕâÁ½¸öº¯ÊýÀàËÆÓÚputchar()Óëgetchar()º¯Êý¡£¼ÙÉèfpÊÇÒ»¸öFILEÖ¸Õ룬chÊÇÒ»¸ö×Ö·û±äÁ¿£¬
ch = getc(fp);// ch = getchar();
putc(ch,fp);// putchar(ch);
½«ÎļþÄÚÈÝ(°´×Ö·û)Êä³öµ½±ê×¼Êä³öµÄCʵÏÖ£º
#include <stdio.h ......

C/C++³ÌÐòÔ±³£¼ûÃæÊÔÌâÉîÈëÆÊÎö


1.ÒýÑÔ   ±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº­¡£ÎÄÖеĴó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û-¡£
 Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½Á ......

cÓïÑÔÄ£Äâperl pythonÖеÄÊý×鸺ÊýË÷Òý

int main()
{
int a[] = {1,2,3,4,5};
int i;
int * p = a;
for (p = a + 4, i = 0; i < 5; i++) {
printf("%d ",p[-i]);
}

return 0;
}

......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ