函数的声明、定义与函数的编译、链接

原创 2016年08月30日 22:11:50

语言可以分为编译型语言和解释型语言,对于编译型语言,一次编译,源程序不改变则无需再进行编译。解释型语言是在运行时解释一条执行一条,如此反复直至完成。

编译型语言编写程序之后需进行几个必不可少的步骤:预处理、编译、链接,三个各有各的作用,有时三个可以放在一起方便编写调试,但有的情况下需要根据其作用发挥其各自的功能。

 

进行函数声明之后,在程序中使用该函数,若未定义,编译该程序,会发现,程序的编译正确通过。但是不能通过链接生成可执行文件 .exe 。由此得出,函数在编译过程中,将一个整体程序以文件为单位分成多部分进行编译,编译中检查其语法是否正确。函数的声明告诉程序,在其子函数中有这么一个函数(函数的返回类型,函数的形参个数及类型),而主函数在使用中知道有一个相同返回类型,相同函数名,相同参数的函数可以用,所以主函数中的编译通过。

 

在函数链接过程中,需要将几个编译的块组装在一起,包括库函数的编译代码及子函数的编译代码,组装在一起才能运行。而这时发现函数中没有对子函数进行定义的编译代码,则发出警告,链接出错。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C代码编译

C语言的翻译分为编译,链接过程,编译过程又分为预处理,解析,汇编。 现在的编程软件都提供了很方便的翻译环境,将翻译链接综合在一块,只通过简单的几个按键就能运行程序。将这个翻译过程理解,有助我们更深的了...

C编程的细节(1)

变量的生命周期问题。在一个程序中,操作系统为程序存储不同数据而划分出不同的区块,栈,堆,数据段,代码段等。 局部变量存储在栈中,依靠栈针的上下移动来控制变量的生存,而这些变量的生存都是由操作系统进行管...

数电知识点总结第二章:逻辑代数基础

第一部分:逻辑代数的基本运算 1.逻辑与(逻辑相乘):决定事物结果的全部条件同时具备时,结果才发生 逻辑或(逻辑相加):决定事物的条件中只要有一个满足,结果就会发生 逻辑非(逻辑求反):条件具备...

学完数字电子电路基础后对计算机的理解

第一章     数制与码制 介绍了几种常见的数制,二进制、八进制、十六进制,这些进制中的二进制和十六进制在计算机应用多。ASCII码是一组七位的二进制代码,共128个,代表着数字、大小字母、32个符...

进程间的通信之管道

进程之间的通信,管道,套接字,共享内存,信号等。 管道分为有名管道和无名管道,有名管道类似于建立一个文件使得两进程之间可以进行通信,其存储方式就是文件的存储方式。而无名管道的生存依赖与进程的生命周期,...

微博接口 API

新浪微博:http://open.weibo.com/wiki/index.php/%E9%A6%96%E9%A1%B5网易微博:http://open.t.163.com/wiki/index.ph...

C++ 声明 定义 头文件 编译 链接

声明是告诉编译器一些信息,以协助编译器进行语法分析,避免编译器报错。而定义是告诉编译器生成一些代码,并且这些代码将由连接器使用。即:声明是给编译 器用的,定义是给连接器用的。这个说明显得很模糊,为什么...

C++函数声明和定义

  • 2011-07-18 14:42
  • 49KB
  • 下载

c++模板函数声明定义分离编译错误详解

今天看到accelerated c++上有个简单的vector容器的实现Vec,就再vs2008上编译了下:   ///// Vec.h #ifndef GUARD_VEC_H #defi...

c++模板函数声明定义分离编译错误详解

今天看到accelerated c++上有个简单的vector容器的实现Vec,就再vs2008上编译了下:   /////  Vec.h   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)