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£
Ïà¹ØÎĵµ£º
AndroidÔÉú(Native)C¿ª·¢£º²é¿´±àÒëÆ÷Ô¤¶¨Òåºê
http://www.csharpwin.com/dotnetspace/4102r4305.shtml
AndroidÔÉú(Native)C¿ª·¢£º±àÒëÑ¡ÏîС½á
AndroidÔÉú(Native)C¿ª·¢Ö®Ê®£ºÓÃCode::BlocksÀ´¿ª·¢
AndroidÔÉú(Native)C¿ª·¢Ö®¾Å£ºOpenGL ES³õ̽
AndroidÔÉú(Native)C¿ª·¢Ö®°Ë£ºToolchain»·¾³´î½¨Æª
AndroidÔÉ ......
[CϵÁÐ]C++³ÌÐòÔ±µÍÊÖóðÑÔ1
±à³ÌÒѾ3ÄêÁË
ÎÒʱ³£¾õµÃ£¬ Èç¹û3ÄêǰµÄÎÒÓÉÏÖÔÚµÄÎÒÀ´Ö¸µãµÄ»°£¬Ó¦¸ÃÓÃ3Ìì¾Í¿ÉÒÔ³öʦÁË¡£
ÎÒµÄÕâÆªÎÄÕ¾ÍÊdzåÕâ¸öÄ¿µÄÀ´µÄ¡£ÔÚ½ÓÏÂÀ´Ô¶Ô¶ÉÙÓÚ3ÌìµÄƪ·ùÖУ¬ÎÒ½«´øÁì¶ÁÕß´Ó²ËÄñÒ»Ö±½úÉýµ½COM(ÒòΪÎÒ×Ô¼ºÒ²Ö»»áÕâô¶àÁË)£¬³õѧÕß¶ÁÍêºó£¬Ó¦µ±Ð¡ÓÐËù³É£¬»ù±¾ÉÏÄÜʤÈÎͨ³£¸÷ÖÖСIT¹«Ë¾µÄ³£¹æ¿ª· ......
ɨÃè½á¹û
----------------------
C:\Documents and Settings\ibmuser\Local Settings\Application Data\S-1-5-31-1286970278978-5713669491-166975984-320\Rotinom\RECYCLER.exe È䳿²¡¶¾(Worm.Generic.221028) ÒÑɾ³ý
C:\Documents and Settings\ibmuser\Local Settings\Application Data\S-1-5-31-12869702 ......
È¥Äê ÎÒÃÇͨ¹ýÁ˼ÆËã»ú¶þ¼¶µÄ¿¼ºË£¬½ÓÏÂÀ´ÃæÁٵľÍÊÇÈý¼¶µÄ¿¼ÑéÁË£¬
ÓôÃÆµÄÊÇ ²»ÖªµÀÊÇÑ¡ÔñÄÄÖÖÓïÑԺã¡
Èý¼¶ÉÏ»ú ¹æ¶¨µÄÓïÑÔÊÇCÓïÑÔ£¬ÎÒѧµÄÊÇC++£¬ÀÏʦ˵£ºÕâ¶ÔÄãµÄÉÏ»ú¿¼ÊÔʱÓÐÓ°ÏìµÄ£¡
´Ó³¤Ô¶½Ç¶È¿´£ºC++±ÈCÓïÑÔÓÐןü¼Ó¹ãÀ«µÄǰ¾°£»¶øCÓïÑÔ¶ÔÓÚÉÏ»ú¿¼ÊÔ ºÃÈÝÒ×ÉÏÊÖ£¡
ÓôÃÆ¡£¡£¡£¡£¡£¡£ ......
main.c
//³õʼ»¯¶ÓÁÐ
void InitQueue(LiQueue *q)
{
q=(LiQueue*)malloc(sizeof(LiQueue));
q->front=q->rear=NULL;
}
//ÅжÏÊÇ·ñΪ¿Õ
int QueueEmpty(LiQueue *q)
{
if(q->rear==NULL)
{
return 1;
}
else
{
......