首要须知 “ # 、库文件(.h) 、库函数(.c) 、定义 、声明 ”的解释说明:

您所在的位置:网站首页 标准库函数的调用 首要须知 “ # 、库文件(.h) 、库函数(.c) 、定义 、声明 ”的解释说明:

首要须知 “ # 、库文件(.h) 、库函数(.c) 、定义 、声明 ”的解释说明:

2024-07-08 07:19| 来源: 网络整理| 查看: 265

关于#

#是C语言“预编译”的标示符;

预编译的意思是:在对源程序代码进行编译前所做的工作

预编译工作与最终可执行文件的执行,完全不同

因为“预编译”是预先于编译工作的,因此,所有的“#”(预处理)操作坚决不可能涉及语句的执行

和表达式的计算

C的库文件分为两类:

扩展名为".h"的文件,称为头文件。在".h"文件中包含了常量定义、 类型定义、宏定义、函数原型以及各种编译选择设置等信息。是函数库,包括了各种函数的目标代码,供用户在程序中调用。通常在程序中调用一个库函数时,要在调用之前包含该函数原型所在的".h" 文件。

库函数也需要声明

对于库函数的声明,C语言程序是通过“系统头文件”进行的;

#include的本质是:将XXXX.h的全部内容(C程序)复制一份,代替#include;即,XXXX.h的内容与所编写的源代码内容,合并编译生成最终的可执行文件。

XXXX.h中有三部分基本内容:同上

宏定义   类型定义库函数声明(将函数封装入库,供用户使用的一种方式)

例如:#include   就有关于printf()函数、scanf()函数等函数的声明。

#include // 首先调用库 此库文件有对库函数的定义的声明,下面源代码即将有使用printf等 某些函数的函数定义和声明 int main() { int a; // 这个叫函数的声明,变量声明 a = 100; // 变量赋值 int b = 200; // 变量定义: 定义也是声明,声明了它的类型和名称;为变量分配内存空间,同时可以选择指定初始值,变量有且仅有一个定义。 printf("%d %d", a,b); ... ... return 0;// 返回值类型为 int } // ;结尾是每个函数体

   

int main()  C语言main函数的一种声明方式return  表示函数的返回值类型,表示该主函数的返回值是 0 一个int类型的值  (返回值是指程序返回给操作系统的值:是int main的整型)main表示主函数,是C语言约定的程序执行入口其标准定义格式为 int main(int argc,char *argv[]);在int main()中,()中没有数值表示入参为空,等同于int main(void);事例中 printf("%d %d",a,b) ;表示将 a,b 的值作为整型类型打印出来,在屏幕上显示,而主函数的返回类型int会将返回的值回传给主调进程,而不是在屏幕输出。因此,printf的输出类型跟主函数的返回类型没有关系,互不关联。事例中,return 0 对应才是主函数的返回值类型。关键字:关键字声明变量名而不是定义

定义(Definition)则指明变量、函数存储在哪里,当定义发生时,系统为变量或函数分配内存单元。函数的定义是一个完整的函数单元,包含函数类型、函数名、形参及形参类型、函数体等。在程序中,函数的定义只能有一次。函数首部与花括号间不加分号。

声明(Declaration)声明只是对编译系统的一个说明:函数声明是对定义的函数的返回值的类型说明,以通知系统在本函数中所调用的函数是什么类型。不包含函数体(或形参),调用几次该函数就应在各个主调函数中做相应声明。函数声明是一个说明语句,必须以分号结束。

小结:

函数的声明和定义区别比较简单,带有{}的就是定义,否则就是声明。一种是函数声明;  一种是函数定义。声明是告诉编译器有这个东西,参数和返回值格式;定义是具体的实现。函数的声明和定义需要区分开。变量的声明和定义可以不那么区分。声明可以声明很多次。声明完可以再进行定义,定义一次就不能变了。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3