闲谈extern

extern 这个东西啊,其实很简单,不过我基础不扎实,用的时候经常会给大脑添负担,这玩意儿到底咋用。

以下内容从一个大神的博客里捞出来的,他写的长。

extern关键字的作用是告诉编译器,在某个cpp文件中,存在这么一个函数/全局变量。

看了老半天至于看着这句了,给我看明白了。

在别的文件里写一堆的extern声明显得特别不专业,也显得代码十分臃肿,有没有好的做法呢?有的。

我们一般把所有的全局变量和全局函数都放在一个*.cpp文件里面,然后用一个同名的*.h文件包含所有的函数和变量的声明。用法的示例就省了吧。

函数的声明类似于:

extern int sum(int, int);

函数的声明语句中,关键字extern可以省略,因为全局函数默认是extern类型的

如果不想让其他.c文件引用本文件中的变量,加上static即可。
只能引用另外一个.c文件里的变量或者函数,不能引用.h文件里的变量,当然,也非常不建议在.h文件里定义变量。(找不到定义)

cpp中调用C的头:
#include “c.h”

extern “C” int Xiao;

extern “C” void fun();

//也可以这么用

extern “C”

{

int Xiao;

void fun();

}

void main()

{

Xiao = 100;//直接使用就会出现无法解析的外部符号 “int Xiao” (?Xiao@@3HA)

fun();//直接使用就会出现无法解析的外部符号 “int fun” (?fun@@3HA)

}

发布了61 篇原创文章 · 获赞 3 · 访问量 1607

猜你喜欢

转载自blog.csdn.net/qq_43762191/article/details/104198661