¹ØÓÚ Ö¸Õë CµÄ¾«Ëè
ÒªÁ˽âÖ¸Õë,¶à¶àÉÙÉÙ»á³öÏÖһЩ±È½Ï¸´ÔÓµÄÀàÐÍ,ËùÒÔÎÒÏȽéÉÜ
Ò»ÏÂÈçºÎÍêÈ«Àí½âÒ»¸ö¸´ÔÓÀàÐÍ,ÒªÀí½â¸´ÔÓÀàÐÍÆäʵºÜ¼òµ¥,Ò»
¸öÀàÐÍÀï»á³öÏֺܶàÔËËã·û,ËûÃÇÒ²ÏñÆÕͨµÄ±í´ïʽһÑù,ÓÐÓÅÏÈ
¼¶,ÆäÓÅÏȼ¶ºÍÔËËãÓÅÏȼ¶Ò»Ñù,ËùÒÔÎÒ×ܽáÁËÒ»ÏÂÆäÔÔò:
´Ó±äÁ¿Ãû´¦Æð,¸ù¾ÝÔËËã·ûÓÅÏȼ¶½áºÏ,Ò»²½Ò»²½·ÖÎö.
ÏÂÃæÈÃÎÒÃÇÏÈ´Ó¼òµ¥µÄÀàÐÍ¿ªÊ¼ÂýÂý·ÖÎö°É:
int p; //ÕâÊÇÒ»¸öÆÕͨµÄÕûÐͱäÁ¿
int *p; //Ê×ÏÈ´ÓP´¦¿ªÊ¼,ÏÈÓë*½áºÏ,ËùÒÔ˵Ã÷PÊÇÒ»
//¸öÖ¸Õë,È»ºóÔÙÓëint½áºÏ,˵Ã÷Ö¸ÕëËùÖ¸Ïò
//µÄÄÚÈݵÄÀàÐÍΪintÐÍ.ËùÒÔPÊÇÒ»¸ö·µ»ØÕû
//ÐÍÊý¾ÝµÄÖ¸Õë
int p[3]; //Ê×ÏÈ´ÓP´¦¿ªÊ¼,ÏÈÓë[]½áºÏ,˵Ã÷PÊÇÒ»¸öÊý
//×é,È»ºóÓëint½áºÏ,˵Ã÷Êý×éÀïµÄÔªËØÊÇÕû
//Ð͵Ä,ËùÒÔPÊÇÒ»¸öÓÉÕûÐÍÊý¾Ý×é³ÉµÄÊý×é
int *p[3]; //Ê×ÏÈ´ÓP´¦¿ªÊ¼,ÏÈÓë[]½áºÏ,ÒòΪÆäÓÅÏȼ¶
//±È*¸ß,ËùÒÔPÊÇÒ»¸öÊý×é,È»ºóÔÙÓë*½áºÏ,˵Ã÷
//Êý×éÀïµÄÔªËØÊÇÖ¸ÕëÀàÐÍ,È»ºóÔÙÓëint½áºÏ,
//˵Ã÷Ö¸ÕëËùÖ¸ÏòµÄÄÚÈݵÄÀàÐÍÊÇÕûÐ͵Ä,ËùÒÔ
//PÊÇÒ»¸öÓÉ·µ»ØÕûÐÍÊý¾ÝµÄÖ¸ÕëËù×é³ÉµÄÊý×é
int (*p)[3]; //Ê×ÏÈ´ÓP´¦¿ªÊ¼,ÏÈÓë*½áºÏ,˵Ã÷PÊÇÒ»¸öÖ¸Õë
//È»ºóÔÙÓë[]½áºÏ(Óë"()"Õâ²½¿ÉÒÔºöÂÔ,Ö»ÊÇΪ
//Á˸ıäÓÅÏȼ¶),˵Ã÷Ö¸ÕëËùÖ¸ÏòµÄÄÚÈÝÊÇÒ»¸ö
//Êý×é,È»ºóÔÙÓëint½áºÏ,˵Ã÷Êý×éÀïµÄÔªËØÊÇ
//ÕûÐ͵Ä.ËùÒÔPÊÇÒ»¸öÖ¸ÏòÓÉÕûÐÍÊý¾Ý×é³ÉµÄÊý
//×éµÄÖ¸Õë
int **p; //Ê×ÏÈ´ÓP¿ªÊ¼,ÏÈÓë*½áºÏ,˵ÊÇPÊÇÒ»¸öÖ¸Õë,È»
//ºóÔÙÓë*½áºÏ,˵Ã÷Ö¸ÕëËùÖ¸ÏòµÄÔªËØÊÇÖ¸Õë,È»
//ºóÔÙÓëint½áºÏ,˵Ã÷¸ÃÖ¸ÕëËùÖ¸ÏòµÄÔªËØÊÇÕû
//ÐÍÊý¾Ý.ÓÉÓÚ¶þ¼¶Ö¸ÕëÒÔ¼°¸ü¸ß¼¶µÄÖ¸Õ뼫ÉÙÓÃ
//ÔÚ¸´ÔÓµÄÀàÐÍÖÐ,ËùÒÔºóÃæ¸ü¸´ÔÓµÄÀàÐÍÎÒÃǾÍ
//²»¿¼ÂǶ༶ָÕëÁË,×î¶àÖ»¿¼ÂÇÒ»¼¶Ö¸Õë.
Ïà¹ØÎĵµ£º
extern "C" Ïê½â
ÔÚC++ÖУ¬ÎªÁËÖ§³ÖÖØÔØ»úÖÆ£¬ÔÚ±àÒëÉú³É»ã±à´úÂëʱ£¬º¯ÊýµÄÃû×ÖÒª¼ÓÈ뺯ÊýµÄ²ÎÊýÀàÐÍ»òÕß·µ»ØÖµÀàÐ͵ÈÐÅÏ¢
ÔÚCÖУ¬ÒòûÓÐÖØÔØ»úÖÆ£¬±àÒëºóµÄ´úÂëÖ»ÊǼòµ¥µÄº¯ÊýÃû×Ö¶øÒÑ£¬²»¼ÓÈëÆäËûµÄÐÅÏ¢
1. ²»¼ÓÈëextern "C"
testexternc.cpp
int mytest(void)
{
int a=10,b=20;
int c=a+b;
ret ......
CÊÇÃæÏò¹ý³ÌµÄ³ÌÐòÉè¼Æ£¬³ÌÐò=Êý¾Ý½á¹¹+Ëã·¨ [×îÔʼ£¬µ«±à¸ö³Ìȷʵ²»Ò×]
C++ÊÇÃæÏò¶ÔÏóµÄ³ÌÐòÉè¼Æ£¬³ÌÐò=¶à¸öÀà+ÏûÏ¢(Àà=Êý¾Ý½á+Ëã·¨)[±È½ÏÈÝÒ×ÉÏÊÖ]
C# ÊÇ´¿ÃæÏò¶ÔÏóµÄÓïÑÔ[¸ü¼Ó±È½ÏÈÝÒ×ÉÏÊÖ]
VC/VC++/VC# Ö»ÊÇÓÃÀ´¿ª·¢C/C++/C#Ó¦ÓóÌÐòµÄÈí¼þÖеÄÒ»ÖÖ¡£
......
1£®ÒÑÖªstrcpy º¯ÊýµÄÔÐÍÊÇ£º
char *strcpy(char *strDest, const char *strSrc);
ÆäÖÐstrDest ÊÇÄ¿µÄ×Ö·û´®£¬strSrc ÊÇÔ´×Ö·û´®¡£²»µ÷ÓÃC++/C µÄ×Ö·û´®¿âº¯Êý£¬Çë±àдº¯Êý strcpy
´ð°¸£º
char *strcpy(char *strDest, const char *strSrc)
{
if ( strDest == NULL || strSrc == NULL)
return NULL ;
if ( strDest ......
²Ù×÷ϵͳµÄÒ»¸ö¾µäÎÊÌâÊÇ"Éú²úÕß-Ïû·ÑÕß"ÎÊÌâ, ÕâÉæ¼°Í¬²½ÐźÅÁ¿ºÍ»¥³âÐźÅÁ¿µÄÓ¦ÓÃ, ÔÚÕâÀï,ÎÒÓÃÏ̵߳Äͬ²½ºÍ»¥³âÀ´ÊµÏÖ.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#define N 2 // Ïû·ÑÕß» ......
µ÷ÊÔkeil³ÌÐòʱÓÐʱ»á³öÏÖ¸÷ÖÖ±àÒ뾯¸æ£¬Ò»°ãÇé¿öϲ»»áÓ°Ïì³ÌÐòµÄÔËÐС£µ«³öÏÖÈçÌâWARNING:MULTIPLE CALL TO SEGMENT¾¯¸æÊ±£¬ÇëÁôÒâÄúµÄ³ÌÐòÊÇ·ñ»á·¢Éú´íÎó¡£ÉÏÊö¾¯¸æÖ¸µÄÊÇÄ㶨ÒåµÄº¯ÊýÌåÔÚÖ÷³ÌÐòÖб»µ÷Óã¬ÔÚÖжÏÖÐÒ²±»Ö±½Ó»ò¼ä½ÓµÄµ÷ÓÃÁË¡£¿ÉÏëÈôÖ÷³ÌÐòÕýÔËÐд˺¯Êýʱ£¬ÖжÏÀ´ÁÙÒ²ÔËÐÐÕâ¶Î³ÌÐòµÄ»°»á·¢Éúº¯ÊýÖØÔØÏÖÏó¡£ ......