[C/C++][Log]

来源:互联网 发布:一部电脑管两家淘宝店 编辑:程序博客网 时间:2024/05/21 18:43

1. extern

       extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义

extern int a;//声明一个全局变量a
int a; //定义一个全局变量a
extern int a =0 ;//定义一个全局变量a 并给初值。一旦给予赋值,一定是定义,定义才会分配存储空间。
int a =0;//定义一个全局变量a,并给初值,
声明之后你不能直接使用这个变量,需要定义之后才能使用。
第四个等于第三个,都是定义一个可以被外部使用的全局变量,并给初值。
糊涂了吧,他们看上去可真像。但是定义只能出现在一处。也就是说,不管是int a;还是int a=0;都只能出现一次,而那个extern int a可以出现很多次

2. sprintf

       int sprintf( char *buffer, const char *format, [ argument] … );

       可以用于数字转字符串。

       sprintf(str, "%d", num);


3. 段错误

1) 访问系统数据区(尤其是往系统保护的内存地址写数据) 

2) 内存越界(数组越界,变量类型不一致等等)

3) 访问到不属于你的内存区域


0 0