¸ß¿É¿¿ÐÔC³ÌÐòµÄ¼¸µãÒªÇó
Ò»¡¢¿ÉÖØÈ뺯Êý
1£©Ê²Ã´ÊÇ¿ÉÖØÈëÐÔ£¿
¿ÉÖØÈ루reentrant£©º¯Êý¿ÉÒÔÓɶàÓÚÒ»¸öÈÎÎñ²¢·¢Ê¹Ó㬶ø²»±Øµ£ÐÄÊý¾Ý´íÎó¡£Ïà·´£¬ ²»¿ÉÖØÈ루non-reentrant£©º¯Êý²»ÄÜÓɳ¬¹ýÒ»¸öÈÎÎñËù¹²Ïí£¬³ý·ÇÄÜÈ·±£º¯ÊýµÄ»¥³â£¨»òÕßʹÓÃÐźÅÁ¿£¬»òÕßÔÚ´úÂëµÄ¹Ø¼ü²¿·Ö½ûÓÃÖжϣ©¡£¿ÉÖØÈ뺯Êý¿ÉÒÔÔÚÈÎÒâʱ¿Ì±»Öжϣ¬ÉÔºóÔÙ¼ÌÐøÔËÐУ¬²»»á¶ªÊ§Êý¾Ý¡£¿ÉÖØÈ뺯ÊýҪôʹÓñ¾µØ±äÁ¿£¬ÒªÃ´ÔÚʹÓÃÈ«¾Ö±äÁ¿Ê±±£»¤×Ô¼ºµÄÊý¾Ý¡£
2£©¿ÉÖØÈ뺯Êý£º
²»ÎªÁ¬ÐøµÄµ÷ÓóÖÓо²Ì¬Êý¾Ý¡£
²»·µ»ØÖ¸Ïò¾²Ì¬Êý¾ÝµÄÖ¸Õ룻ËùÓÐÊý¾Ý¶¼Óɺ¯ÊýµÄµ÷ÓÃÕßÌṩ¡£
ʹÓñ¾µØÊý¾Ý£¬»òÕßͨ¹ýÖÆ×÷È«¾ÖÊý¾ÝµÄ±¾µØ¿½±´À´±£»¤È«¾ÖÊý¾Ý¡£
Èç¹û±ØÐë·ÃÎÊÈ«¾Ö±äÁ¿£¬¼ÇסÀûÓû¥³âÐźÅÁ¿À´±£»¤È«¾Ö±äÁ¿¡£
¾ø²»µ÷ÓÃÈκβ»¿ÉÖØÈ뺯Êý¡£
3£©²»¿ÉÖØÈ뺯Êý£º
º¯ÊýÖÐʹÓÃÁ˾²Ì¬±äÁ¿£¬ÎÞÂÛÊÇÈ«¾Ö¾²Ì¬±äÁ¿»¹ÊǾֲ¿¾²Ì¬±äÁ¿¡£
º¯Êý·µ»Ø¾²Ì¬±äÁ¿¡£
º¯ÊýÖе÷ÓÃÁ˲»¿ÉÖØÈ뺯Êý¡£
º¯ÊýÌåÄÚʹÓÃÁ˾²Ì¬µÄÊý¾Ý½á¹¹£»
º¯ÊýÌåÄÚµ÷ÓÃÁËmalloc()»òÕßfree()º¯Êý£»
º¯ÊýÌåÄÚµ÷ÓÃÁËÆäËû±ê×¼I/Oº¯Êý¡£
º¯ÊýÊÇsingletonÖеijÉÔ±º¯Êý¶øÇÒʹÓÃÁ˲»Ê¹ÓÃÏ̶߳ÀÁ¢´æ´¢µÄ³ÉÔ±±äÁ¿ ¡£
×ܵÄÀ´Ëµ£¬Èç¹ûÒ»¸öº¯ÊýÔÚÖØÈëÌõ¼þÏÂʹÓÃÁËδÊܱ£»¤µÄ¹²ÏíµÄ×ÊÔ´£¬ÄÇôËüÊDz»¿ÉÖØÈëµÄ¡£
4£©Ê¾Àý
ÔÚ¶àÏß³ÌÌõ¼þÏ£¬º¯ÊýÓ¦µ±ÊÇḬ̈߳²È«µÄ£¬½øÒ»²½£¬¸üÇ¿µÄÌõ¼þÊÇ¿ÉÖØÈëµÄ¡£¿ÉÖØÈ뺯Êý±£Ö¤ÁËÔÚ¶àÏß³ÌÌõ¼þÏ£¬º¯ÊýµÄ״̬²»»á³öÏÖ´íÎó¡£ÒÔÏ·ֱðÊÇÒ»¸ö²»¿ÉÖØÈëºÍ¿ÉÖØÈ뺯ÊýµÄʾÀý£º
//c code
static int tmp;
void func1(int* x, int* y) {
tmp=*x;
*x=*y;
*y=tmp;
}
void func2(int* x, int* y) {
int tmp;
tmp=*x;
*x=*y;
*y=tmp;
}
func1ÊDz»¿ÉÖØÈëµÄ£¬func2ÊÇ¿ÉÖØÈëµÄ¡£ÒòΪÔÚ¶àÏß³ÌÌõ¼þÏ£¬²Ù×÷ϵͳ»áÔÚfunc1»¹Ã»ÓÐÖ´ÐÐÍêµÄÇé¿öÏ£¬Çл»µ½ÁíÒ»¸öÏß³ÌÖУ¬ÄǸöÏ߳̿ÉÄÜÔٴε÷ÓÃfunc1£¬ÕâÑù״̬¾Í´íÁË¡£
¶þ¡¢º¯Êý±àд¹æ·¶
1 £º¶ÔËùµ÷Óú¯ÊýµÄ´íÎó·µ»ØÂëÒª×Ðϸ¡¢È«ÃæµØ´¦Àí
2 £ºÃ÷È·º¯Êý¹¦ÄÜ£¬¾«È·£¨¶ø²»ÊǽüËÆ£©µØÊµÏÖº¯ÊýÉè¼Æ
3 £º±àд¿ÉÖØÈ뺯Êýʱ£¬Ó¦×¢Òâ¾Ö²¿±äÁ¿µÄʹÓã¨Èç±àдC/C++ ÓïÑԵĿÉÖØÈ뺯Êýʱ£¬Ó¦Ê¹ÓÃauto ¼´È±Ê¡Ì¬¾Ö²¿±äÁ¿»ò¼Ä´æÆ÷±äÁ¿£©
˵Ã÷£º±àдC/C++ÓïÑԵĿÉÖØÈ뺯Êýʱ£¬²»Ó¦Ê¹ÓÃstatic¾Ö²¿±äÁ¿£¬·ñÔò±ØÐë¾¹ýÌØÊâ´¦Àí£¬²ÅÄÜʹº¯Êý¾ßÓпÉÖØÈë
Ïà¹ØÎĵµ£º
Boss˵£¬Òª¿´OpenGL£¬¿´ÁË¿ìÒ»¸öÔ£¬×ÜËã³öÁ˸öÏñÑùµÄ¶«Î÷£¬ÓÃCдÁ˸ö3DÃÔ¹¬£¬
ËäȻֻÓÐ350ÐÐ
´úÂ룬²»¹ý±ßѧ±ßд£¬×ã×ãдÁËÒ»ÖÜʱ¼ä£¬»¹ÊÇСÓгɾ͸е쬻î»î»î£¡
&n ......
×óÖµÐÔ£¨lvalueness£©ÔÚC/C++ÖÐÊDZí´ïʽµÄÒ»¸öÖØÒªÊôÐÔ¡£Ö»ÓÐͨ¹ýÒ»¸ö×óÖµ±í´ïʽ²ÅÄÜÀ´ÒýÓü°¸ü¸ÄÒ»¸ö¶ÔÏó£¨object£©µÄÖµ¡££¨Ä³Ð©Çé¿öÏ£¬ÓÒÖµ±í´ïʽҲÄÜÒýÓã¨refer£©µ½Ä³Ò»¸ö¶ÔÏ󣬲¢ÇÒ¿ÉÄܼä½ÓÐ޸ĸöÔÏóµÄÖµ£¬ºóÊö£©¡£
ºÎν¶ÔÏó£¿Èç¹ûûÓÐÃ÷ȷ˵Ã÷£¬ÕâÀï˵µÄ¶ÔÏ󣬺ÍÏÁÒåµÄÀà/¶ÔÏó£¨class/object£© ......
C ºÍ C++ ×Ö·û´®×ÖÃæÁ¿£¨String Literal£©¼ÈÓÐÏà֮ͬ´¦£¬ÓÖÓÐÒ»Ð©Çø±ð¡£Á˽âÕâЩÄÚÈݶÔÓÚ¼ÓÉî×Ö·û´®×ÖÃæÁ¿ÒÔ¼°Ïà¹ØÒ»Ð©¸ÅÄîµÄÀí½â¡¢³ÎÇåһЩ³£¼ûµÄ¸ÅÄîÎóÇø²»ÎÞÖúÒæ¡£±¾ÎÄÒÔÆÕͨ×Ö·û´®×ÖÃæÁ¿ "hello" ΪÀý×ܽá˵Ã÷ÈçÏ¡£
Ïàͬµã£º
×Ö·û´®×ÖÃæÁ¿ÊǶÔÏó
C/C++ ÖеĶÔÏó£¨Object£©Ö¸µÄÊÇÒ»¿é´æ´¢Çø¡£×Ö·û´®×ÖÃæÁ¿ÊDz»ÐèÒª´´ ......
#apt-get install gcc (±àÒëÆ÷)
#apt-get install gdb (µ÷ÊÔ)
#apt-get install libc6-dev (¿ª·¢¿â)
Èç¹ûûÓпª·¢¿â£¬gccµÄʱºò¾Í»á´íÎó
gcc h.c
h.c: In function ‘main’:
h.c:1: warning: incompatible implicit declaration of built-in function ‘prin ......
»ã±à½ÒÃØCÓïÑÔÖеIJÎÊý´«µÝÎÊÌâ[zz]
ÎÄÕÂ×÷Õߣºcook702
ºÜ¶àѧϰ»ã±àµÄÅóÓÑÏë±Ø¶ÔCÒ²±È½ÏÁ˽⣬ÒòΪÔÚµ±Ç°´óѧµÄ¿Î³ÌÌåϵÀËüºÜÓпÉÄܾÍÊÇÄã½Ó´¥µ½µÄµÚÒ»Ãűà³ÌÓïÑÔ¡£ÓÉÓÚ¶Ô¼ÆËã»úµÄÀí½â²»¹»£¬Ñ§Ï°Ê±±Ø¶¨»áÓö
µ½¸÷ÖÖÎÊÌâ¡£ÓÐЩÎÊÌâÊÇÄãͨ¹ý˼¿¼¾Í¿ÉÒÔ½â¾öµÄ£¬¶ø¸ü¶àµÄÎÊÌâÔòÊÇÄãÎÞ´Ó˼¿¼£¬¾ÍºÃÏñËüÌìÉú¾ÍÊÇÕâÑù£¬ÄãÖ»Ò ......