下载此文档

E7ABA0名词的空间域、时间域和物理存储位置.ppt


文档分类:行业资料 | 页数:约46页 举报非法文档有奖
1/46
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/46 下载此文档
文档列表 文档介绍
E7ABA0名词的空间域、时间域和物理存储位置
a= 10
a= 20, x= 10
a= 10, b= 30
Press any key to continue
main()中的输出
fun()中的输出
main()中的层输出内层Person类型变量LiSi的大小,编译出错
sizeof(LiSi)= 20
sizeof(ZS)= 16
Press any key to continue

程序的所有代码都是写在文件中的。
用C/C++编写程序,最少要有一个文件。
在文件内定义的类型或量值(注意:不包含在任何模块中,而是直接定义在文件中)的空间域是从定义位置开始,到本文件的结束。本文件内,在定义该类型或量值后面的任何模块内或模块外,都可以引用该类型或量值。
类型只能定义在前,引用在后。
变量通常定义在前,引用在后。
变量如果定义在后,引用在先,必须在引用前明确用关键字extern声明。
例6. 4 文件中定义的类型或量值的空间域
#include<>
struct Person
{ int id;
char name[10];
};
int i;
定义在文件中的Person类型
定义在文件中的int型变量i
void main()
{
Person ZS={1,"张三"};
{
i=10;
printf("i= %d\n",i);
}
printf(“id=%d name=%s\n", , );
}
在main函数的外层模块中声明一个Person类型的变量ZS,并赋值
在main函数的内层模块中引用整型变量i,并赋值
i= 10
id=1 name=张三
Press any key to continue
一个编译出错的示例程序:

程序中,将Person类型的定义写在文件的后端,而文件前端的main函数模块内,引用了后面才定义的Person类型。程序编译出错。
#include<>
int i;
void main()
{ Person ZS={1,"张三"};
{
i=10;
printf("i= %d",i);
}
printf("%d %s\n", , );
}
struct Person
{ int id;
char name[10];
};
在main函数的外层模块中声明一个定义在文件后面的Person类型的变量ZS,并赋值。编译出错
定义在文件后面的Person类型
用extern声明定义在后的变量的情况。
例6. 6 变量的先声明,再应用,而后定义
#include<>
#include<>
struct Person
{ int id;
char name[10];
};
定义在文件前面的Person类型
void main()
{ extern int i;
i =10;
extern Person ZS;
=1;
strcpy(, "张三");
printf("i= %d\n", i);
printf(“id=%d name=%s\n", , );
}
Person ZS;
int i;
定义在文件后面的变量i,ZS
声明在文件后面定义的变量i
声明在文件后面定义的变量ZS
i= 10
id=1 name=张三
Press any key to continue
#include<>
#include<>
struct Person
{ int id;
char name[10];
};
void main()
{ Person ZS={1, "张三" };
int i=10;
printf("i= %d\n", i);
printf("%d %s\n", , );
extern int j;
j=200;
printf(“j=%d\n", j);
int j;
}
出错
原因:”定义在后,重新声明,然后引用”的规则模块外(文件内)的全局变量在模块内引用的规则,不能应用于模块内声明的局部变量。
注意: ”定义在后,重新声明,然后引用”的规则不适合类型,只适合变量。

工程中可以有多个文件
每个文件中可以有多个全局的类型、全局的量值和全局的函数模块
函数模块内可以有多个局部的类型和局部的量值

E7ABA0名词的空间域、时间域和物理存储位置 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数46
  • 收藏数0 收藏
  • 顶次数0
  • 上传人我是药仙
  • 文件大小964 KB
  • 时间2022-05-20