C __attribute__ Ïê½â
< type="text/javascript">
ÔÎÄÇë¼ûÕâÀï
¡£
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(scanf,m,n)))
ÆäÖвÎÊýmÓënµÄº¬ÒåΪ£º
m£ºµÚ¼¸¸ö²ÎÊýΪ¸ñʽ»¯×Ö·û´®£¨format string£©£»
n£º²ÎÊý¼¯ºÏÖеĵÚÒ»¸ö£¬¼´²ÎÊý“…”ÀïµÄµÚÒ»¸ö²ÎÊýÔÚº¯Êý²ÎÊý×ÜÊýÅÅÔÚµÚ¼¸£¬×¢Ò⣬ÓÐʱº¯Êý²ÎÊýÀﻹÓГÒþÉ픵ÄÄØ£¬ºóÃæ»áÌáµ½£»
ÔÚʹÓÃÉÏ£¬__attribute__((format(printf,m,n)))Êdz£Óõ쬶øÁíÒ»ÖÖÈ´ºÜÉÙ¼ûµ½¡£ÏÂÃæ¾ÙÀý˵Ã÷£¬ÆäÖÐmyprintΪ×Ô¼º¶¨ÒåµÄÒ»¸ö´øÓпɱä²ÎÊýµÄº¯Êý£¬Æä¹¦ÄÜÀàËÆÓÚprintf£º
//m=1£»n=2
extern void myprint(const char *format,...) __attribute__((format(printf,1,2)));
//m=2£»n=3
extern void myprint(int l£
Ïà¹ØÎĵµ£º
[CϵÁÐ]C++³ÌÐòÔ±µÍÊÖóðÑÔ1
±à³ÌÒѾ3ÄêÁË
ÎÒʱ³£¾õµÃ£¬ Èç¹û3ÄêǰµÄÎÒÓÉÏÖÔÚµÄÎÒÀ´Ö¸µãµÄ»°£¬Ó¦¸ÃÓÃ3Ìì¾Í¿ÉÒÔ³öʦÁË¡£
ÎÒµÄÕâÆªÎÄÕ¾ÍÊdzåÕâ¸öÄ¿µÄÀ´µÄ¡£ÔÚ½ÓÏÂÀ´Ô¶Ô¶ÉÙÓÚ3ÌìµÄƪ·ùÖУ¬ÎÒ½«´øÁì¶ÁÕß´Ó²ËÄñÒ»Ö±½úÉýµ½COM(ÒòΪÎÒ×Ô¼ºÒ²Ö»»áÕâô¶àÁË)£¬³õѧÕß¶ÁÍêºó£¬Ó¦µ±Ð¡ÓÐËù³É£¬»ù±¾ÉÏÄÜʤÈÎͨ³£¸÷ÖÖСIT¹«Ë¾µÄ³£¹æ¿ª· ......
¼òÊöCºÍC++³ÌÐòԱѧϰÀú³Ì
ÊÕ²Ø
< type="text/javascript">
document.body.oncopy = function() {
if (window.clipboardData) {
setTimeout(function() {
......
¡¡¡¡ÔÚÍøÂçÁ¬½ÓģʽÖÐ,³ý¶ÔµÈÍøÍâ,»¹ÓÐÁíÒ»ÖÖÐÎʽµÄÍøÂ磬¼´¿Í»§»ú/·þÎñÆ÷Íø£¬Client/Server¡£ÔÚ¿Í»§»ú/·þÎñÆ÷ÍøÂçÖУ¬·þÎñÆ÷ÊÇÍøÂçµÄºËÐÄ£¬¶ø¿Í»§»úÊÇÍøÂçµÄ»ù´¡£¬¿Í»§»úÒÀ¿¿·þÎñÆ÷»ñµÃËùÐèÒªµÄÍøÂç×ÊÔ´£¬¶ø·þÎñÆ÷Ϊ¿Í»§»úÌá¹©ÍøÂç±ØÐëµÄ×ÊÔ´¡£
¡¡¡¡ÕâÀï¿Í»§ºÍ·þÎñÆ÷¶¼ÊÇָͨÐÅÖÐËùÉæ¼°µÄÁ½¸öÓ¦Óýø³Ì£¨Èí¼þ£©¡£Ê¹ÓüÆËã» ......
Ò»¡¢»ù±¾ÖªÊ¶
Ö¸ÕëºÍÒýÓõÄÉùÃ÷·½Ê½£º
ÉùÃ÷Ö¸Õ룺 char* pc;
ÉùÃ÷ÒýÓ㺠char c = 'A'
char& rc = c;
ËüÃǵÄÇø±ð£º
¢Ù´ÓÏÖÏóÉÏ¿´£¬Ö¸ÕëÔÚÔËÐÐʱ¿ÉÒԸıäÆäËùÖ¸ÏòµÄÖµ£¬¶øÒýÓÃÒ»µ©ºÍij¸ö¶ÔÏó°ó¶¨ºó ......