广州建设网站外包,wordpress视觉差,外贸公司的网站建设模板,重庆网站制作公司电话目录
1.函数的定义
2.函数声明
2.1 函数本地声明
2.2 函数外部声明 2.2.1函数的外部声明的好处和坏处
3.变量定义与声明
3.1变量定义
3.2变量声明
4.结构体的定义与声明
4.1结构体的定义
4.2结构体的声明 1.函数的定义 函数的定义即函数的具体实现。
2.函数声明 函数…目录
1.函数的定义
2.函数声明
2.1 函数本地声明
2.2 函数外部声明 2.2.1函数的外部声明的好处和坏处
3.变量定义与声明
3.1变量定义
3.2变量声明
4.结构体的定义与声明
4.1结构体的定义
4.2结构体的声明 1.函数的定义 函数的定义即函数的具体实现。
2.函数声明 函数声明就是对函数进行声明告诉编译器系统中存在这样的函数一般在调用函数时使用即函数调用先声明后调用。
函数原型式声明
int fun(int a, int b); // 函数名字fun返回类型 int有2个int 参数
函数简单声明
int fun(int, int); // 函数名字fun默认返回类型其实也是int有2个int 参数2.1 函数本地声明 int f();本地声明和外部声明基本没有太大区别本地声明即告诉编译器此函数是在当前c文件中定义的
2.2 函数外部声明 extern int f();函数的声明中带有关键字extern即声明此函数在外部实现外部声明即告诉编译器这个函数可能在别的源文件里定义。 函数本地声明和函数外部声明没有明显的区别extern int f(); 和int f();其仅仅起到对函数声明的作用函数声明和函数定义没有很大的联系除了函数声明的返回值、函数名称、参数类型和个数与函数定义一致即可。函数声明是为了函数调用避免参数传入错误而进行声明的所以函数声明因函数调用而生。 2.2.1函数的外部声明的好处和坏处 好处extern int f();在函数调用的源文件前面或者头文件中对调用的函数进行外部声明不用关心其定义在哪个文件中或者在程序中进行include “*.h”(调用的函数声明所在的头文件)在一些复杂的项目中我比较习惯在所有的函数声明前添加extern修饰。 坏处比如我们引用了一个库文件的某个函数我们在调用它时将它在我们调用的源文件或者头文件将其声明为外部函数如果库文件的原函数参数发生了变化我们编译时是不会报错的但是函数运行时因为少了或者多了输入参数往往会照成系统错误。 解决办法目前业界针对这种情况的处理没有一个很完美的方案通常的做法是提供方在自己的xxx_pub.h中提供对外部接口的声明然后调用方include该头文件从而省去extern这一步。以避免这种错误。 宝剑有双锋对extern的应用不同的场合应该选择不同的做法。
3.变量定义与声明
3.1变量定义 int a即对变量的定义此变量为全局变量时方可进行外部声明。
3.2变量声明 extern int a对全局变量int a进行声明先声明后调用。
4.结构体的定义与声明
4.1结构体的定义
结构体类型定义 typedef struct __SCHOOL {string teacher;string address;string phone;} SHANGHAI_SCHOOL, BEIJING_SCHOOL;
结构体变量实体 SHANGHAI_SCHOOL sh_school;BEIJING_SCHOOL bj_school;
4.2结构体的声明 只有结构体实体才可以进行声明如果在外部函数中要使用到全局变量sh_school和bj_school时可以如下 extern SHANGHAI_SCHOOL sh_school;extern BEIJING_SCHOOL bj_school;
如果在外部实现了一个函数函数参数需要用到外部的一个结构体
struct _SCHOOL/*类似于int一样如此就可以使用了结构体_SCHOOL了*/
int get_school_infostruct _SCHOOL school,int a{
}