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

GNU C __attribute__ »úÖÆ¼ò½é

GNU C __attribute__ »úÖÆ¼ò½é
2006-06-17 13:54:00
¡¡±êÇ©£º¡¡¡¡¡¡[ÍÆË͵½¼¼ÊõȦ]
ͻ񻣼
ÔÚѧϰlinuxÄں˴úÂ뼰һЩ¿ªÔ´Èí¼þµÄÔ´Â루È磺DirectFB£©£¬¾­³£¿ÉÒÔ¿´µ½ÓйØ__attribute__µÄÏà¹ØÊ¹Óᣱ¾ÎĽáºÏ×Ô¼ºµÄѧϰ¾­Àú£¬½ÏΪÏêϸµÄ½éÉÜÁË__attribute__Ïà¹ØÓï·¨¼°ÆäʹÓá£
---------------------------------------------------------
ÉùÃ÷£º
  ´ËÎÄΪԭ´´£¬»¶Ó­×ªÔØ£¬×ªÔØÇë±£ÁôÈçÏÂÐÅÏ¢
  ×÷ÕߣºÄô·É£¨afreez£© ±±¾©-Öйشå
  ÁªÏµ·½Ê½£ºafreez@sina.com £¨»¶Ó­Óë×÷Õß½»Á÷£©
  ³õ´Î·¢²¼Ê±¼ä£º2006-06-17
  ²»¾­±¾ÈËͬÒ⣬²»µÃÓÃÓïÉÌÒµ»òÓ®ÀûÐÔÖÊÄ¿µÄ£¬·ñÔò£¬×÷ÕßÓÐȨ׷¾¿Ïà¹ØÔðÈΣ¡
---------------------------------------------------------
GNU CµÄÒ»´óÌØÉ«£¨È´²»±»³õѧÕßËùÖª£©¾ÍÊÇ__attribute__»úÖÆ¡£__attribute__¿ÉÒÔÉèÖú¯ÊýÊôÐÔ£¨Function Attribute£©¡¢±äÁ¿ÊôÐÔ£¨Variable Attribute£©ºÍÀàÐÍÊôÐÔ£¨Type Attribute£©¡£
__attribute__ÊéÐ´ÌØÕ÷ÊÇ£º__attribute__ǰºó¶¼ÓÐÁ½¸öÏ»®Ïߣ¬²¢ÇкóÃæ»á½ô¸úÒ»¶ÔÔ­À¨»¡£¬À¨»¡ÀïÃæÊÇÏàÓ¦µÄ__attribute__²ÎÊý¡£
__attribute__Óï·¨¸ñʽΪ£º
__attribute__ ((attribute-list))
ÆäλÖÃÔ¼ÊøÎª£º
·ÅÓÚÉùÃ÷µÄβ²¿“£»”֮ǰ¡£
º¯ÊýÊôÐÔ£¨Function Attribute£©
º¯ÊýÊôÐÔ¿ÉÒÔ°ïÖú¿ª·¢Õß°ÑÒ»Ð©ÌØÐÔÌí¼Óµ½º¯ÊýÉùÃ÷ÖУ¬´Ó¶ø¿ÉÒÔʹ±àÒëÆ÷ÔÚ´íÎó¼ì²é·½ÃæµÄ¹¦ÄܸüÇ¿´ó¡£__attribute__»úÖÆÒ²ºÜÈÝÒ×ͬ·ÇGNUÓ¦ÓóÌÐò×öµ½¼æÈÝÖ®¹¦Ð§¡£
GNU CCÐèҪʹÓà –Wall±àÒëÆ÷À´»÷»î¸Ã¹¦ÄÜ£¬ÕâÊÇ¿ØÖƾ¯¸æÐÅÏ¢µÄÒ»¸öºÜºÃµÄ·½Ê½¡£ÏÂÃæ½éÉܼ¸¸ö³£¼ûµÄÊôÐÔ²ÎÊý¡£
__attribute__ format
¸Ã__attribute__ÊôÐÔ¿ÉÒÔ¸ø±»ÉùÃ÷µÄº¯Êý¼ÓÉÏÀàËÆprintf»òÕßscanfµÄÌØÕ÷£¬Ëü¿ÉÒÔʹ±àÒëÆ÷¼ì²éº¯ÊýÉùÃ÷ºÍº¯Êýʵ¼Êµ÷ÓòÎÊýÖ®¼äµÄ¸ñʽ»¯×Ö·û´®ÊÇ·ñÆ¥Åä¡£¸Ã¹¦ÄÜÊ®·ÖÓÐÓã¬ÓÈÆäÊÇ´¦ÀíһЩºÜÄÑ·¢ÏÖµÄbug¡£
formatµÄÓï·¨¸ñʽΪ£º
format (archetype, string-index, first-to-check)
    formatÊôÐÔ¸æËß±àÒëÆ÷£¬°´ÕÕprintf, scanf, strftime»òstrfmonµÄ²ÎÊý±í¸ñʽ¹æÔò¶Ô¸Ãº¯ÊýµÄ²ÎÊý½øÐмì²é¡£“archetype”Ö¸¶¨ÊÇÄÄÖÖ·ç¸ñ£»“string-index”Ö¸¶¨´«È뺯ÊýµÄµÚ¼¸¸ö²ÎÊýÊǸñʽ»¯×Ö·û´®£»“first-to-check”Ö¸¶¨´Óº¯ÊýµÄµÚ¼¸¸ö²ÎÊý¿ªÊ¼°´ÉÏÊö¹æÔò½øÐмì²é¡£
¾ßÌåʹÓøñʽÈçÏ£º
__attribute__((format(printf,m,n)))
__attribute__((format(s


Ïà¹ØÎĵµ£º

ARMµÚÒ»¸öÏîÄ¿ÖйØÓÚCµÄ×ܽá

1£ºÃ¿Ò»¸ö±äÁ¿ÔÚʹÓÃǰ¶¼µÃÉùÃ÷£¬²»È»ÔÚʹÓõÄʱºò¾ÍÓпÉÄÜÊÇËæ»úµÄÊý×Ö
2£º×¢ÒâÍ·ÎļþÖк¯ÊýÉùÃ÷µÄʱºòÒªÔÚºóÃæ¼ÓÉÏ·ÖºÅ
3£º×¢Òâ´®¿Ú¿ÉÒÔ´òÓ¡±äÁ¿£¬¾ÍÏñCÖеÄprintfÒ»Ñù
4£ºDNWÖв»ÄÜ´òÓ¡floatÐÍÊý¾Ý
5£º×¢Òâ½á¹¹ÌåÖ¸ÕëÊý×é µÄʹÓú͵÷ÓÃ
6£º ......

C/C++ÓïÑÔ±à³ÌÐÞÑø2

21¡¢gotoÓï¾äµÄʹÓÃ
—————————
 
NÄêǰ£¬Èí¼þ¿ª·¢µÄÒ»´ú×Úʦ——µÏ½ÜË¹ÌØÀ­(Dijkstra)˵¹ý£º“goto statment is
harmful !!”£¬²¢½¨ÒéÈ¡ÏûgotoÓï¾ä¡£ÒòΪgotoÓï¾ä²»ÀûÓÚ³ÌÐò´úÂëµÄά»¤ÐÔ¡£
 
ÕâÀïÎÒҲǿÁÒ½¨Ò鲻ҪʹÓÃgo ......

ת£ºSSEÖ¸Áî½éÉܼ°ÆäC¡¢C++Ó¦ÓÃ

SSEÊÇÓ¢ÌØ¶ûÌá³öµÄ¼´MMXÖ®ºóÐÂÒ»´ú£¨µ±È»ÊǼ¸ÄêǰÁË£©CPUÖ¸Á£¬×îÔçÓ¦ÓÃÔÚPIIIϵÁÐCPUÉÏ¡£ÏÖÔÚÒѾ­µÃµ½ÁËIntel PIII¡¢P4¡¢Celeon¡¢Xeon¡¢AMD Athlon¡¢duronµÈϵÁÐCPUµÄÖ§³Ö¡£¶ø¸üеÄSSE2Ö¸Á½öµÃµ½ÁËP4ϵÁÐCPUµÄÖ§³Ö£¬ÕâÒ²ÊÇΪʲôÕâÆªÎÄÕÂÊǽ²SSE¶ø²»ÊÇSSE2µÄÔ­ÒòÖ®Ò»¡£ÁíÒ»¸öÔ­Òò¾ÍÊÇSSEºÍSSE2µÄÖ¸ÁîϵͳÊǷdz£ÏàËÆµ ......

¶¨ÒåC/C++È«¾Ö±äÁ¿/³£Á¿¼¸ÖÖ·½·¨µÄÇø±ð

ÔÚÌÖÂÛÈ«¾Ö±äÁ¿Ö®Ç°ÎÒÃÇÏÈÒªÃ÷°×¼¸¸ö»ù±¾µÄ¸ÅÄ
1. ±àÒëµ¥Ôª(Ä£¿é)£º
    ÔÚIDE¿ª·¢¹¤¾ß´óÐÐÆäµÀµÄ½ñÌ죬¶ÔÓÚ±àÒëµÄһЩ¸ÅÄîºÜ¶àÈËÒѾ­²»ÔÙÇå³þÁË£¬ºÜ¶à³ÌÐòÔ±×îŵľÍÊÇ´¦ÀíÁ¬½Ó´íÎó(LINK ERROR), ÒòΪËü²»Ïñ±àÒë´íÎóÄÇÑù¿ÉÒÔ¸ø³öÄã³ÌÐò´íÎóµÄ¾ßÌåλÖã¬Äã³£³£¶ÔÕâÖÖ´íÎó¸Ðµ½°ÃÄÕ£¬µ«ÊÇÈç¹ûÄã¾­³£Ê¹ÓÃg ......

¡¾C\C++ÓïÑÔÈëÃÅÆª¡¿ Êý×éÓëÖ¸Õë

Ç°ÃæÒ»ÆªÎÒÃǽéÉÜÁËÖ¸Õ룬ÏàÐÅ´ó¼Ò¶ÔÖ¸Õë²»ÔÙÊÇÄÇôİÉú£¬ËäÈ»ÔÚһЩ´óµ¨µÄÖ¸ÕëÇ¿ÖÆÀàÐÍת»»ÉÏÓеĶÁÕß»¹²»Ï°¹ß¡£µ«ÊÇÖÁÉÙ´ó¼ÒÐÄÀïÓиöÊý£¬Ö¸ÕëʽÈç´ËµÄÁé»î£¬ÒÔÖÁÓÚÄã¿ÉÒÔ²Ù×÷µÃ±È½Ïµ×²ã»òÕ߸ù±¾Ô½¹ýһЩÓï·¨µÄÏÞÖÆ¡£Õâ¿ÉÄÜÒ²ÊÇÖÚ¶à³ÌÐòÔ±Åê»÷CC++²»°²È«µÄÒòËØÖ®Ò»¡£°²²»°²È«²»ÊDZ¾ÎÄÏëÒª±í´ïµÄ£¬ÕâÀïÖ»ÐèÒª¼Çסһµã£¬Èç¹û ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ