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¹«Ë¾µÄ³£¹æ¿ª· ......
W3C±ê×¼µÄHTML±êÇ©
°´¹¦ÄÜÀà±ðÅÅÁÐ
DTD£ºÖ¸Ê¾ÔÚÄÄÖÖ XHTML 1.0 DTD ÖÐÔÊÐí¸Ã±êÇ©¡£
S=Strict,ÑϸñÀàÐÍ, T=Transitional,¹ý¶ÉÀàÐÍ¡¾×îÆÕ±é¡¿, F=Frameset,¿ò¼ÜÀàÐÍ.
±êÇ©³É¶Ô£¬xhtmlÊDZÈhtml¸üÑϸñ£¬ÀàËÆXML¸ñʽ
±êÇ©ÃèÊöDTD
<!DOCTYPE>
¶¨ÒåÎĵµÀàÐÍ¡£
STF
<html>
¶¨Òå HTML Îĵµ¡£
STF
< ......
ÔÚc++ÖдæÔÚ£¬ÔÚcÓïÑÔÖÐÈ´²»´æÔÚµÄÏÞÖÆÓУº
1. ÍêÕûµÄº¯ÊýÔÐÍÉùÃ÷ÊDZØÐëµÄ£¬cÓïÑÔÀïûÕâôÑϸñ.
2. c++ÖУ¬ÓÉtypedef¶¨ÒåµÄÃû×Ö²»ÄÜÓëÒÑÓеĽṹ±êÇ©³åÍ»£¬µ«ÊÇcÓïÑÔÖÐÈ´ÊÇ¿ÉÒÔµÄ.
3. µ±void*Ö¸Õ븳ֵ¸øÁíÒ»¸öÀàÐ͵ÄÖ¸Õëʱ£¬c++¹æ¶¨±ØÐë½øÐÐÇ¿ÖÆÀàÐÍת»»£¬µ«ÊÇcÓïÑÔÖÐÈ´²»±ØÒª¡£
ÔÚc++ºÍcÖк¬Òå²»Ò»ÑùµÄÌØÐÔ£º
1. c++ ......
CÓïÑԵĻص÷º¯Êý˼Ïë´úÂ룺
#include <stdio.h>
void *max(void *base, unsigned int nmemb, unsigned int size,
int (*compar)(const void *, const void *))
{
int i;
void* max_data = base;
char* tmp = base;
&nbs ......