DS¼Æ»®CÉîÈëѧϰÏîÄ¿£º¡¾×ܽ᡿¡¾±äÁ¿¡¿±äÁ¿µÄ´æ´¢Óò
Èç¹ûÒª¼ÓÈë´Ë¼Æ»®:
1¡¢
·½Ê½1
£º¼ÓÈë
QQ
Ⱥ£º
93684322
¡£
2¡¢
·½Ê½2
£º¼ÓÈë
CSDN
Ⱥ×飺
DS¼Æ»®
¡£
1.1 ±äÁ¿´æ´¢Óò
1.1.1 Ò»¸öʾÀý
pang123huiÊ×ÏÈÌṩÁËÒ»¸öÍøÉÏÁ÷´«µÄѧϰ´úÂëʾÀý£º
int a = 0; //È«¾ÖÇø
void main()
{
int b; //Õ»
char s[] = “abc”; //sÔÚÕ»,abcÔÚÎÄ×Ö³£Á¿Çø
char *p1,*p2; //Õ»
char *p3 = "123456"; //123456ÔÚ³£Á¿Çø£¬p3ÔÚÕ»ÉÏ
static int c =0; //È«¾ÖÇø
p1 = (char *)malloc(10); //p1ÔÚÕ»£¬·ÖÅäµÄ10×Ö½ÚÔÚ¶Ñ
p2 = (char *)malloc(20); //p2ÔÚÕ»£¬·ÖÅäµÄ20×Ö½ÚÔÚ¶Ñ
strcpy(p1, "123456"); //123456·ÅÔÚ³£Á¿Çø
}
Õâ¸ö´úÂëʾÀýÖгöÏÖÁ˓ȫ¾ÖÇø”£¬“Õ»”£¬“ÎÄ×Ö³£Á¿Çø”£¬“¶Ñ”µÈ´ÊÓΪÁËͳһ£¬ÎÒÃÇʹÓá¶Cר¼Ò±à³Ì¡·ÖеÄ˵·¨£º¶ÑÕ»¶Î£¬BSS¶Î£¬Êý¾Ý¶Î£¬Îı¾¶Î¡£
¸÷¸ö¶ÎµÄ×÷ÓÃÈçÏ£º
1¡¢ Îı¾¶Î£º°üº¬³ÌÐòµÄÖ¸ÁËüÔÚ³ÌÐòµÄÖ´Ðйý³ÌÖÐÒ»°ã²»»á¸Ä±ä¡£
2¡¢ Êý¾Ý¶Î£º°üº¬Á˾¹ý³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿£¬ÒÔ¼°ËûÃǵÄÖµ¡£
3¡¢ BSS¶Î£º°üº¬Î´¾³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿¡£
4¡¢ ¶ÑÕ»¶Î£º°üº¬Á˺¯ÊýÄÚ²¿ÉùÃ÷µÄ¾Ö²¿±äÁ¿¡£
µ±È»£¬ÉÏÃæ¶ÎµÄ×÷Óò»½öÓÚ´Ë£¬¾ßÌåµÄ×÷ÓûáÔÚÏÂÃæµÄ֪ʶµãÖнéÉÜ¡£
1.1.2 ͨ¹ý´úÂë²âÊÔ±äÁ¿µÄ´æ´¢Î»ÖÃ
LinuxÏ¿ÉÒÔͨ¹ýϵͳÃüÁî“size”²é¿´¿ÉÒÔÖ´ÐгÌÐò¸÷¸ö¶ÎµÄ´óС¡£µ«ÊÇ£¬¿ÉÖ´ÐгÌÐòÖеĶνṹºÍÔËÐÐÖгÌÐòÔÚÄÚ´æÖеĶνṹ²¢²»ÍêÈ«Ïàͬ£¬µ«ÊÇÓÐÒ»¶¨µÄÓ³Éä¹ØÏµ¡£¾ßÌåÈçÏÂͼËùʾ£¨Í¼Æ¬ÐÅÏ¢À´×Ô¡¶Cר¼Ò±à³Ì¡·£©£º
ÏÂÃæÍ¨¹ý´úÂëʾÀýºÍ“size”À´Ñо¿±äÁ¿µÄ´æ´¢ÇøÓò¡£
test.c
int main()
{
return 1;
}
±àÒ룬²¢ÇҲ鿴¿ÉÖ´ÐгÌÐò¸÷¸ö¶ÎµÄ´óС£º
¸ü¸Ätest.c£º
int g_data;
int main()
{
return 1;
}
±àÒ룬²¢ÇҲ鿴¿ÉÖ´ÐгÌÐò¸÷¸ö¶ÎµÄ´óС£º
¿ÉÒÔ·¢ÏÖ£¬Îı¾¶Î£¬Êý¾Ý¶Î¶¼Ã»Óз¢Ëͱ仯£¬¶øBSS¶ÎÔö¼ÓÁË4¸ö×Ö½Ú¡£
½áÂÛ1£ºÎ´³õʼ»¯µÄÈ«¾Ö±äÁ¿±£´æÔÚBSS¶ÎÖÐ
¼ÌÐø£º
int g_data = 1;
int main()
{
return 1;
}
±àÒ룺
¿ÉÒÔ·¢ÏÖ£¬BSS¶ÎºÍÎı¾¶ÎÏàͬ£¬¶øÊý¾Ý¶ÎÔö¼ÓÁË4¸ö×Ö½Ú¡£
½áÂÛ2£º¾¹ý³õʼ»¯µÄÈ«¾Ö±äÁ¿±£´æÔÚÊý¾Ý¶ÎÖÐ
¼ÌÐø£º
int main()
{
static int g_data;
return 1;
}
±àÒ룺
¿ÉÒÔ·¢Ï
Ïà¹ØÎĵµ£º
Ò»¡¢»ù±¾ÖªÊ¶
Ö¸ÕëºÍÒýÓõÄÉùÃ÷·½Ê½£º
ÉùÃ÷Ö¸Õ룺 char* pc;
ÉùÃ÷ÒýÓ㺠char c = 'A'
char& rc = c;
ËüÃǵÄÇø±ð£º
¢Ù´ÓÏÖÏóÉÏ¿´£¬Ö¸ÕëÔÚÔËÐÐʱ¿ÉÒԸıäÆäËùÖ¸ÏòµÄÖµ£¬¶øÒýÓÃÒ»µ©ºÍij¸ö¶ÔÏó°ó¶¨ºó ......
ʲôÊÇ¿ÕÖ¸Õë³£Á¿£¨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++µ÷ÓÃÒ»¸ö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 ......
< type="text/javascript">
ÔÎÄÇë¼ûÕâÀï
¡£
GNU
CµÄÒ»´óÌØÉ«£¨È´²»±»³õѧÕßËùÖª£©¾ÍÊÇ__attribute__»úÖÆ¡£__attribute__¿ÉÒÔÉèÖú¯ÊýÊôÐÔ£¨Function
Attribute£©¡¢±äÁ¿ÊôÐÔ£¨Variable Attribute£©ºÍÀàÐÍÊôÐÔ£¨Type Attribute£©¡£
__attribute__ÊéÐ´ÌØÕ÷ÊÇ£º__attribute__ǰºó¶¼ÓÐÁ½¸öÏ»® ......
µ¥Àýģʽ£º¶ÔÓ¦Ò»¸öÀàÖ»ÄÜÉú³ÉÒ»¸ö¶ÔÏó¡£
#include <stdio.h>
class A
{
private:
int id;
A() {}//°Ñ¹¹Ô캯Êý·ÅÔÚprivate£ºÏÂÄ¿µÄÊÇÔÚÀàÍâ²»ÄÜÔÚÕ»ÉÏÖ±½Ó·ÖÅä¿Õ¼ä¶¨Òå¶ÔÏó¡£
public:
static A *pt;
static A *instance()
  ......