1.可见性:针对编译链接链接过程。
生存期:针对程序的运行过程。
2.在C语言中函数是最小的执行单位。结构体可以进行嵌套定义,但函数不能进行嵌套定义。
3.在C语言中其他函数的定义必须放在主函数(主调函数)的前面,或者将其他函数的声明放到主函数的前面。否则编译不通过。
下面一段代码:
/***************
源文件1中的代码
***************/
#include<stdio.h>
#include "标头.h"
void main()
{
int a = 1000;
int b = 2000;
int c = add(a,b);
printf("%d\n",c);
}
/***************
源文件1中的代码
***************/
int add(int x, int y){
int z = x + y;
return z;
}
/***************
“标头. h”中的代码//头文件
***************/
#pragma onceextern int add(int, int);
//一般把对函数、全局变量的声明放在头文件中。
4.全局变量解析符::
下面一段代码:
/***************
源文件1中的代码
***************/
#include<stdio.h>
#include "标头.h"
void main()
{
int a = 1000;
int b = 2000;
int c = add(a,b);
int max=10;
printf("%d\n",::max);//::是全局作用域解析符,它的作用是告诉编译器,这块要打印的是全局的max。
}
/***************
源文件1中的代码
***************/
int add(int x, int y){
int z = x + y;
return z;
}
/***************
“标头. h”中的代码//头文件
***************/
#pragma onceextern int add(int, int);//声明有一个int add (int,int)函数来自外部。
int max=100;//这个max不是代码,它是数据存放在全局变量区。
程序的运行结果是100。5.全局变量的可见性是从它声明的一刻起向下。
6.在C语言中所有的语句都必须放在函数体里面。
7.在vs中,一个解决方案就是一个工程文件。
含有主函数的文件成为主文件。
8.外部声明关键字:extern
extern "c"//表示从这个声明往下的代码以c方式编译。
......
extern "c++"//表示从这个声明往下的代码以c++方式编译。
下面一段代码:
#include<stdio.h>
#include "标头.h"//将“标头.h”中的内容拷贝到当前位置。
void main()
{
extern int max;//表示有一个来自其他文件的整形变量max。
int a = 1000;
int b = 2000;
int c = add(a,b);
int max = 10;
printf("%d\n",::max);
}
全局变量加static修饰后,此全局变量就只能在本文件中使用,而不能被引用到其他文件中。
9. .h文件中只能是声明,不能有变量和函数的声明。