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

Linux ÄÚºËÖÐµÄ GCC ÌØÐÔ(ת)

M. Tim Jones, ¹ËÎʹ¤³Ìʦ, Emulex Corp.
2009 Äê 4 ÔÂ 07 ÈÕ
Linux® ÄÚºËʹÓà GNU Compiler Collection (GCC) Ì×¼þµÄ¼¸¸öÌØÊ⹦ÄÜ¡£ÕâЩ¹¦ÄܰüÀ¨Ìṩ¿ì½Ý·½Ê½ºÍ¼ò»¯ÒÔ¼°Ïò±àÒëÆ÷ÌṩÓÅ»¯ÌáʾµÈµÈ¡£Á˽âÕâÐ©ÌØÊâµÄ GCC ÌØÐÔ£¬Ñ§Ï°ÈçºÎÔÚ Linux ÄÚºËÖÐʹÓÃËüÃÇ¡£
GCC ºÍ Linux ÊdzöÉ«µÄ×éºÏ¡£¾¡¹ÜËüÃÇÊǶÀÁ¢µÄÈí¼þ£¬µ«ÊÇ Linux ÍêÈ«ÒÀ¿¿ GCC ÔÚеÄÌåϵ½á¹¹ÉÏÔËÐС£Linux »¹ÀûÓà GCC ÖеÄÌØÐÔ£¨³ÆÎªÀ©Õ¹£©ÊµÏÖ¸ü¶à¹¦ÄܺÍÓÅ»¯¡£±¾ÎÄÌÖÂÛÒ»Ð©ÖØÒªµÄÀ©Õ¹£¬½²½âÈçºÎÔÚ Linux ÄÚºËÖÐʹÓÃËüÃÇ¡£
GCC µ±Ç°µÄÎȶ¨°æ±¾£¨°æ±¾ 4.3.2£©Ö§³Ö C ±ê×¼µÄÈý¸ö°æ±¾£º
* International Organization for Standardization (ISO) ×î³õµÄ C ÓïÑÔ±ê×¼£¨ISO C89 »ò C90£©
* ´øÐÞÕý 1 µÄ ISO C90
* µ±Ç°µÄ ISO C99£¨ÕâÊÇ GCC ʹÓõÄĬÈϱê×¼£¬±¾ÎÄÒ²¼ÙÉè²ÉÓÃÕâÖÖ±ê×¼£©
×¢Ò⣺±¾ÎļÙÉèʹÓà ISO C99 ±ê×¼¡£Èç¹ûÖ¸¶¨±È ISO C99 °æ±¾¾ÉµÄ±ê×¼£¬ÄÇô¿ÉÄÜÎÞ·¨Ê¹Óñ¾ÎÄÃèÊöµÄһЩÀ©Õ¹¡£¿ÉÒÔÔÚÃüÁîÐÐÉÏʹÓà -std Ñ¡ÏîÖ¸¶¨ GCC ʹÓõÄʵ¼Ê±ê×¼¡£¿ÉÒÔͨ¹ý GCC ÊÖ²á²é¿´Äĸö±ê×¼°æ±¾Ö§³ÖÄÄЩÀ©Õ¹£¨¼û ²Î¿¼×ÊÁÏ ÖеÄÁ´½Ó£©¡£
¿ÉÓ¦Óõİ汾
±¾ÎÄÖ÷Òª¹Ø×¢ÔÚ 2.6.27.1 Linux ÄÚºËºÍ GCC µÄ 4.3.2 °æ±¾ÖÐʹÓà GCC À©Õ¹¡£Ã¿¸ö C À©Õ¹ÒýÓà Linux ÄÚºËÔ´´úÂëÖеÄÒ»¸öÎļþ£¬¿ÉÒÔÔÚÆäÖÐÕÒµ½Ê¾Àý¡£
¿ÉÒÔÒÔ¼¸ÖÖ·½Ê½¶Ô¿ÉÓÃµÄ C À©Õ¹½øÐзÖÀà¡£±¾ÎİÑËüÃÇ·ÖΪÁ½´óÀࣺ
* ¹¦ÄÜÐÔ À©Õ¹Ìṩй¦ÄÜ¡£
* ÓÅ»¯ À©Õ¹°ïÖúÉú³É¸ü¸ßЧµÄ´úÂë¡£
¹¦ÄÜÐÔÀ©Õ¹
ÏÈÌÖÂÛһЩÀ©Õ¹±ê×¼ C ÓïÑ﵀ GCC À©Õ¹¡£
ÀàÐÍ·¢ÏÖ
GCC ÔÊÐíͨ¹ý±äÁ¿µÄÒýÓÃʶ±ðÀàÐÍ¡£ÕâÖÖ²Ù×÷Ö§³Ö·ºÐͱà³Ì¡£ÔÚ C++¡¢Ada ºÍ Java™ ÓïÑÔµÈÐí¶àÏÖ´ú±à³ÌÓïÑÔÖж¼¿ÉÒÔÕÒµ½ÏàËÆµÄ¹¦ÄÜ¡£Linux ʹÓà typeof ¹¹½¨ min ºÍ max µÈÒÀÀµÓÚÀàÐ͵IJÙ×÷¡£Çåµ¥ 1 ÑÝʾÈçºÎʹÓà typeof ¹¹½¨Ò»¸ö·ºÐͺ꣨¼û ./linux/include/linux/kernel.h£©¡£
Çåµ¥ 1. ʹÓà typeof ¹¹½¨Ò»¸ö·ºÐͺê
#define min(x, y) ({ \
typeof(x) _min1 = (x); \
typeof(y) _min2 = (y); \
(void) (&_min1 == &_min2); \
_min1 < _min2 ? _min1 : _min2; })
·¶Î§À©Õ¹
GCC Ö§³Ö·¶Î§£¬ÔÚ C ÓïÑÔµÄÐí¶à·½Ãæ¶¼¿ÉÒÔʹÓ÷¶Î§¡£ÆäÖÐÖ®Ò»ÊÇ switch/case ¿éÖÐµÄ case Óï¾ä¡£ÔÚ¸´ÔÓµÄÌõ¼þ½á¹¹ÖУ¬Í¨³£ÒÀ¿¿Ç¶Ì×µÄ if Óï¾äʵÏÖÓëÇåµ¥ 2£¨¼û ./linux/drivers/scsi/sd.c£©ÏàͬµÄ½á¹û£¬µ«ÊÇÇåµ¥ 2 ¸ü¼ò½à¡£Ê¹Óà switch/case Ò²¿ÉÒÔͨ¹ýʹÓÃÌø×ª±í


Ïà¹ØÎĵµ£º

Linux µÄ¶àÏ̱߳à³ÌµÄ¸ßЧ¿ª·¢¾­Ñé

2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾­Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......

Èý¿î Linux ϵÄÃâ·Ñ×ÀÃæ¼¶É±¶¾Èí¼þ(ͼ)


ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......

LinuxÉ豸Çý¶¯ÖеIJ¢·¢¿ØÖÆ

²¢·¢Ó뾺̬
½â¾ö¾ºÌ¬ÎÊÌâµÄ;¾¶ÊDZ£Ö¤¶Ô¹²Ïí×ÊÔ´µÄ»¥³â·ÃÎÊ¡£
·ÃÎʹ²Ïí×ÊÔ´µÄ´úÂëÇøÓò³ÆÎªÁÙ½çÇø£¬ÁÙ½çÇøÐèÒªÒÔijÖÖ»¥³â»úÖÆ¼ÓÒÔ±£»¤¡£ÖÐ¶ÏÆÁ±Î¡¢Ô­×Ó²Ù×÷¡¢×ÔÐýËøºÍÐźÅÁ¿µÈÊÇLinuxÉ豸Çý¶¯ÖпɲÉÓõĻ¥³â;¾¶¡£
ÖÐ¶ÏÆÁ±Î
ÖÐ¶ÏÆÁ±Î½«Ê¹µÃÖжÏÓë½ø³ÌÖ®¼äµÄ²¢·¢²»ÔÙ·¢Éú£¬¶øÇÒ£¬ÓÉÓÚLinuxÄں˵Ľø³Ìµ÷¶ÈµÈ²Ù×÷¶¼ÒÀÀµ ......

linuxÖÐselect()º¯Êý·ÖÎö

select()µÄ»úÖÆÖÐÌṩһfd_setµÄÊý¾Ý½á¹¹£¬Êµ¼ÊÉÏÊÇÒ»longÀàÐ͵ÄÊý×飬 Ã¿Ò»¸öÊý×éÔªËØ¶¼ÄÜÓëÒ»´ò¿ªµÄÎļþ¾ä±ú£¨²»¹ÜÊÇSocket¾ä±ú,»¹ÊÇÆäËû Îļþ»òÃüÃû¹ÜµÀ»òÉ豸¾ä±ú£©½¨Á¢ÁªÏµ£¬½¨Á¢ÁªÏµµÄ¹¤×÷ÓɳÌÐòÔ±Íê³É£¬ µ±µ÷ÓÃselect()ʱ£¬ÓÉÄں˸ù¾ÝIO״̬ÐÞ¸Äfd_setµÄÄÚÈÝ£¬ÓÉ´ËÀ´Í¨ÖªÖ´ ÐÐÁËselect()µÄ½ø³ÌÄ ......

¹ØÓÚLinuxµÄÊé¼®

Linux²¢²»ÊÇÒ»¸ö±Èwindows¸üÉñÃØµÄϵͳ.
ÊǵÄLinuxûÓÐMSDN,µ«LinuxºÍÏà¹ØÈí¼þµÄÎĵµ¾ø¶Ô²»±ÈMSDNÒªÉÙ
¼ÇµÃ,Ò»¸ö¿´¹Ù·½ÍøÕ¾µÄÎĵµ,Ò»¸ögoogle.ÎÒÏë,´ó¶àÎÊÌâ¶¼»á½â¾öµÄ.ʣϵľͿ¿
Ä㶯ÊÖ½â¾öÁË.
linuxÈëÃÅ:
ûÓз¢ÏÖʲô±È½ÏºÃµÄÈëÃÅÊé,Ҫô̫¹ÅÀÏ,ҪôÕÕ¹ËÌ«¶àµÄ·ÅÐа汾,µ¼ÖÂûÓÐʲô
ʵ¼ÊÓô¦.ʵ¼ÊÉÏ,²Î¿¼·¢ÐÐ°æµ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ