keil C ³öÏÖWARNING:MULTIPLE CALL TO SEGMENTµÄ½âÎö
µ÷ÊÔkeil³ÌÐòʱÓÐʱ»á³öÏÖ¸÷ÖÖ±àÒ뾯¸æ£¬Ò»°ãÇé¿öϲ»»áÓ°Ïì³ÌÐòµÄÔËÐС£µ«³öÏÖÈçÌâWARNING:MULTIPLE CALL TO SEGMENT¾¯¸æʱ£¬ÇëÁôÒâÄúµÄ³ÌÐòÊÇ·ñ»á·¢Éú´íÎó¡£ÉÏÊö¾¯¸æÖ¸µÄÊÇÄ㶨ÒåµÄº¯ÊýÌåÔÚÖ÷³ÌÐòÖб»µ÷Óã¬ÔÚÖжÏÖÐÒ²±»Ö±½Ó»ò¼ä½ÓµÄµ÷ÓÃÁË¡£¿ÉÏëÈôÖ÷³ÌÐòÕýÔËÐд˺¯Êýʱ£¬ÖжÏÀ´ÁÙÒ²ÔËÐÐÕâ¶Î³ÌÐòµÄ»°»á·¢Éúº¯ÊýÖØÔØÏÖÏó¡£Èô´ËÏÖÏó·¢ÉúÇÒÄãÔÚ³ÌÐòÖÐδ¼Ó´¦Àí£¬ÄÇôºÜÓпÉÄܵ¼ÖÂÄúµÄ³ÌÐò·¢Éú²»¿ÉÔ¤²âµÄ½á¹û¡£½áºÏÍøÉϲéѯµÄ½á¹ûºÍ×Ô¼ºµÄÉè¼ÆÌṩ¼¸¸ö¿ÉÐеĽâ¾ö·½·¨ÊÇ£º
1. ÀûÓùؼü×Öreentrant±íÃ÷º¯Êý¿ÉÖØÔØ
ÆÀ×¢£º¸Ã·¨ÅųýÁ˱àÒëÆ÷¾¯¸æºÍ¿ÉÄܳöÏÖµÄÖØÔØ´øÀ´µÄÓ°Ï죬µ«´Ë·½·¨ÔÚÖØÔØ·¢Éúʱ£¬ÎªÁ˱£»¤Ö÷³ÌÐòµÄ³ÌÐòÐÅÏ¢£¬ÏµÍ³»á½«³ÌÐòµÄÐÅÏ¢±£´æµ½¶ÑÕ»ÖУ¬Ôì³É¶ÑÕ»µÄ¶øÍ⸺µ£
2. Èç¹û¿Õ¼ä¶àµÄ»°£¬¿ÉÒÔ¶¨ÒåÁ½¸öͬ¹¦Äܵĺ¯Êý£¬·Ö±ðÔÚÖжϺÍÖжÏÍâµ÷ÓÃ
ÆÀ×¢£º¸Ã·½·¨²Ù×÷ÆðÀ´·½±ã£¬²»»á³öÏÖÉÏÒ»¸ö°ì·¨µÄ±×¶Ë£¬µ«±È½ÏÀË·Ñcode
3. ÀûÓú¯ÊýÖ¸Õë
ÆÀ×¢£º¸Ã·½·¨ÊʺÏÓÃÔÚÈ·¶¨ÖжϺÍÖ÷³ÌÐò²»»áͬʱµ÷Óøú¯ÊýµÄʱºò¡£Ëü²»½öÅųýÁ˱àÒëÆ÷¾¯¸æ£¬ÔÚcodeÕ¼ÓᢲÙ×÷·½Ã涼±È½ÏºÃ
Ïà¹ØÎĵµ£º
Ôø¾Åöµ½¹ýÈÃÄãÃԻ󲻽⡢ÀàËÆÓÚint * (* (*fp1) (int) ) [10];ÕâÑùµÄ±äÁ¿ÉùÃ÷Â𣿱¾ÎĽ«ÓÉÒ×µ½ÄÑ£¬Ò»²½Ò»²½½Ì»áÄãÈçºÎÀí½âÕâÖÖ¸´ÔÓµÄC/C++ÉùÃ÷¡£
¡¡¡¡ÎÒÃǽ«´ÓÿÌ춼ÄÜÅöµ½µÄ½Ï¼òµ¥µÄÉùÃ÷ÈëÊÖ£¬È»ºóÖð²½¼ÓÈëconstÐÞÊηûºÍtypedef£¬»¹Óк¯ÊýÖ¸Õ룬×îºó½éÉÜÒ»¸öÄܹ»ÈÃÄã׼ȷµØÀí½âÈκÎC/C++ÉùÃ÷µÄ&ld ......
extern "C" Ïê½â
ÔÚC++ÖУ¬ÎªÁËÖ§³ÖÖØÔØ»úÖÆ£¬ÔÚ±àÒëÉú³É»ã±à´úÂëʱ£¬º¯ÊýµÄÃû×ÖÒª¼ÓÈ뺯ÊýµÄ²ÎÊýÀàÐÍ»òÕß·µ»ØÖµÀàÐ͵ÈÐÅÏ¢
ÔÚCÖУ¬ÒòûÓÐÖØÔØ»úÖÆ£¬±àÒëºóµÄ´úÂëÖ»ÊǼòµ¥µÄº¯ÊýÃû×Ö¶øÒÑ£¬²»¼ÓÈëÆäËûµÄÐÅÏ¢
1. ²»¼ÓÈëextern "C"
testexternc.cpp
int mytest(void)
{
int a=10,b=20;
int c=a+b;
ret ......
²Ù×÷ϵͳµÄÒ»¸ö¾µäÎÊÌâÊÇ"Éú²úÕß-Ïû·ÑÕß"ÎÊÌâ, ÕâÉ漰ͬ²½ÐźÅÁ¿ºÍ»¥³âÐźÅÁ¿µÄÓ¦ÓÃ, ÔÚÕâÀï,ÎÒÓÃÏ̵߳Äͬ²½ºÍ»¥³âÀ´ÊµÏÖ.
/*
* author ÕÅÎÄ
* 2008/06/20
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h> ......
C³ÌÐòÖоßÓзḻµÄÊý¾ÝÀàÐÍ£¬°üÀ¨ÉùÃ÷ÖÐÏÔʽ¶¨ÒåµÄÀàÐͺÍÓÃ×ö±í´ïʽÖмäÀàÐ͵ĵ¼³öÀàÐÍ¡£ÀýÈ磬ÏÂÃæµÄ¸³ÖµÓï¾ä°üº¬3 ÖÖ²»Í¬ÀàÐÍ:
int *p, x;
*p = x;
xÊÇÒ»¸ö´æ·ÅÕûÊýµÄµ¥ÔªµÄµØÖ·£¬Òò´ËxµÄµØÖ·µÄÀàÐÍÊÇ£ºÖ¸ÏòÒ»¸öÕûÊýµÄÖ¸Õë¡£xµÄÖµµÄÀàÐÍÊÇÕûÐÍ¡£Í¬Ñù, pµÄ×óÖµµÄÀàÐÍÊÇÖ¸ÏòÒ»¸öÕ ......