C ++µÄµ¥Àýģʽ
µ¥Àýģʽ£º¶ÔÓ¦Ò»¸öÀàÖ»ÄÜÉú³ÉÒ»¸ö¶ÔÏó¡£
#include <stdio.h>
class A
{
private:
int id;
A() {}//°Ñ¹¹Ô캯Êý·ÅÔÚprivate£ºÏÂÄ¿µÄÊÇÔÚÀàÍâ²»ÄÜÔÚÕ»ÉÏÖ±½Ó·ÖÅä¿Õ¼ä¶¨Òå¶ÔÏó¡£
public:
static A *pt;
static A *instance()
{
if (pt == NULL)//×¢ÒâÊÇË«µÈºÅ£¬»¹ÓкÃÏñÔÚC++ÖÐÓÃnull ²»ºÃʹ¡£
{
pt=new A;
return pt;
}
else
return pt;
}
~A()
{
delete pt;//ÒòΪ¿ª±ÙÁ˶ѿռ䣬ҪÓÃdelete ÊÍ·Å¡£
}
void id_set(int x)
{
id=x;
}
void id_get()
{
printf("%d",id);
}
};
A* A::pt=NULL;//¾²Ì¬³ÉÔ±±äÁ¿Ö»ÄÜÔÚÀàÍâ³õʼ»¯¡£
int main()
{
//´ËÀ಻ÄÜÔÚÕ»ÉÏ·ÖÅä¶ÔÏóÖ»ÄÜͨ¹ýÀàÖÐÌṩµÄº¯Êý½Ó¿ÚÓÃnewÔÚ¶ÑÉÏ·ÖÅä¶ÔÏó¡£
A *ppt=A::instance();
ppt->id_set(10);
ppt->id_get();
A *ppt1=A::instance();
ppt1->id_get();
ppt1->id_set(5);
ppt->id_get();
return 0;//ÔÚº¯Êý½áÊøÊ±×Ô¶¯µ÷ÓÃÎö¹¹º¯Êý~A£¨£©£»
}
Êä³öÊÇ10105
¿ÉÒÔ¿´³öpptÓëppt1Ö¸ÏòµÄÊÇͬһ¸ö¶ÔÏó¡£
Ïà¹ØÎĵµ£º
ºÜÓвο¼ÒâÒåµÄѧÀúÁ÷³Ì¡£
¡¡¡¡1¡¢¿ÉÒÔ¿¼ÂÇÏÈѧϰC.
¡¡¡¡´ó¶àÊýʱºò£¬ÎÒÃÇѧϰÓïÑÔµÄÄ¿µÄ£¬²»ÊÇΪÁ˳ÉΪһ¸öÓïÑÔר¼Ò£¬¶øÊÇÏ£Íû³ÉΪһ¸ö½â¾öÎÊÌâµÄר¼Ò¡£×öÒ»¸öÓÐÓõijÌÐòÔ±£¬×öÒ»¸ö׬ǮµÄ³ÌÐòÔ±¡£ÎÒÃǵļÛÖµ£¬½«ÌåÏÖÔÚ¿Í»§¼ÛÖµÉÏ£¬¶ø²»ÊÇÓïÑÔдµÃºÃ²»ºÃ¿´¡£
¡¡¡¡C++ÊÇCµÄÒ»¸öÃæÏò¶ÔÏóµÄ½âÊÍ£¬C++ΪCÀ ......
ʲôÊÇ¿ÕÖ¸Õë³£Á¿£¨null pointer constant£©?
[6.3.2.3-3] An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant.
ÕâÀï¸æËßÎÒÃÇ£º0¡¢0L¡¢'\0'¡¢3 - 3¡¢0 * 17 £¨ËüÃǶ¼ÊÇ“integer constant expression”£©ÒÔ¼° (void*)0 µÈ¶¼ÊÇ¿Õ ......
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 ......
< type="text/javascript">
ÔÎÄÇë¼ûÕâÀï
¡£
GNU
CµÄÒ»´óÌØÉ«£¨È´²»±»³õѧÕßËùÖª£©¾ÍÊÇ__attribute__»úÖÆ¡£__attribute__¿ÉÒÔÉèÖú¯ÊýÊôÐÔ£¨Function
Attribute£©¡¢±äÁ¿ÊôÐÔ£¨Variable Attribute£©ºÍÀàÐÍÊôÐÔ£¨Type Attribute£©¡£
__attribute__ÊéÐ´ÌØÕ÷ÊÇ£º__attribute__ǰºó¶¼ÓÐÁ½¸öÏ»® ......