定义---存在
如果一个变量或者是函数没有定义,那么他就没有实体,即不存在
调用--使用
调用函数,或者是使用变量就意味着这个被使用的对象时有实体的
声明--注册
告知一个使用变量或者调用函数的C文件这个变量是注册的,可以使用(但是注册也可能不存在)
好了 一个工程 有多个.c .h文件组成
=======================编译================================================
gcc -c
编译命令不会在意被调用的函数是否存在,如果连注册信息都没有(没有声明)就会有警告但是不会报错,
但是变量不行如果没有定义的变量,也没有其为全局变量的声明(没有使用关键字extern)就会报错
类型本身没有实体,要想使用必须有定义在文件之内
========================连接================================================
gcc -o生成
连接是把所有的实体关联起来的过程,这就是说实体本身必须存在,否则一定会错
这个过程的.o文件会找实体
==============================================================================
对于一个工程来说
GCC *.c
显示编译每个.C文件,对于函数和变量来说不会在意实体到底存在不存在
但是到了链接的阶段连接器会在所有的制定的.o中找实体,如果没有那么会报错
最好的过程是 =存在,注册、通知,调用、使用
但是vc 是不同的vc 要求必须有注册,即函数的声明,才能调用