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

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¿ª·¢


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±àÂë¹æ·¶

1 ÎĵµËµÃ÷
2 Îļþ½á¹¹
2.1 ΪÁ˸üºÃµÄÀûÓÃCVSµÄÐ޸ļǼ¹¦ÄÜ£¬ÔÚcommitµÄʱºò£¬ÈÏÕæµÄÌîдÐ޸ļǼ¡£
2.2 Ϊ·ÀֹͷÎļþ±»Öظ´ÒýÓã¬Ó¦µ±ÓÃifndef/define/endif½á¹¹²úÉúÔ¤´¦Àí¿é£»
2.3 ʹÓÃ__cplusplusºê¶¨Ò壬ʹ³ÌÐò¿ÉÒÔ·½±ãµÄÒÆÖ²ÖÁC++»·¾³Ï£»
2.4 Óà #include ¸ñʽÀ´ÒýÓñê×¼¿âµÄÍ·Îļþ£¨±àÒëÆ÷½«´Ó±ê×¼¿âĿ¼¿ªÊ ......

ÓÉatof·¢ÏÖµÄCÖи¡µãСÊý²»¾«È·ÎÊÌâ


±ÈÈç ÊäÈë1.9»áÏÔʾ1.899999 ÀàËÆµÄÎÊÌâ
 
ÓÉÓÚCÓïÑÔÖжÔÓÚ¸¡µãСÊýµÄ±í´ï·½Ê½µÄ¾ÖÏÞµ¼Öµġ£CÓïÑÔÖÐ10½øÖÆÐ¡ÊýÊÇÖ±½ÓÓÃ2½øÖÆÐ¡ÊýÀ´±íʾµÄ¡£ÓÉÓÚijЩ10½øÖÆÐ¡Êý¸ù±¾ÎÞ·¨ÓÃ2½øÖÆÐ¡ÊýÀ´¾«È·±í´ï£¬Æ©Èç0.1,µ¼Ö¼ÆËã»ú²»µÃ²»ÓýüËÆµÄÏà²îºÜСµÄ2½øÖÆÐ¡ÊýÀ´±íʾÕâЩ10½øÖÆÐ¡Êý¡£   
  ¼ÈÈ»ÊǽüËÆ£¬¾ÍÒ» ......

extern "C"

Èç¹ûC++µ÷ÓÃÒ»¸öCÓïÑÔ±àдµÄ.DLLʱ£¬µ±°üÀ¨.DLLµÄÍ·Îļþ»òÉùÃ÷½Ó¿Úº¯Êýʱ£¬Ó¦¼Óextern "C" {¡¡}¡£
È磺
Í·ÎļþcExample.h
#include <stdio.h>
#ifndef C_EXAMPLE_H
#define C_EXAMPLE_H
int add(int x,int y);
#endif

º¯ÊýʵÏÖÎļþcExample.c(×¢ÒâÊÇ.cÎļþ)
#include<stdio.h>
#include "cExample ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ