1. 首页 > 网友吃瓜 > 正文

“extern”那些事儿——C语言中的幕后黑手

说到这个extern关键字,那可真是C语言里的一朵“奇葩”。你说它没用吧,偏偏在大型项目里总能见到它的身影;你说它有用吧,又感觉像个“幽灵”,神出鬼没的。今天,咱就来聊聊这个让人又爱又恨的extern

“extern”那些事儿——C语言中的幕后黑手

1. “extern”是个什么鬼?

在C语言的世界里,extern关键字可谓是“神龙见首不见尾”。它的主要作用就是告诉编译器:“嘿,这个变量或者函数在别的地方定义了,你别管它,我来找。”简单来说,extern用于声明一个已经在其他地方定义的变量或函数,以便在当前文件中使用。

“extern”那些事儿——C语言中的幕后黑手

2. “extern”的神秘力量

你可能会问:“我为什么要用extern呢?”好吧,让我来告诉你这个“神秘力量”。

“extern”那些事儿——C语言中的幕后黑手

2.1 跨文件共享

在大型项目中,你可能需要将代码分散到多个文件中。这时候,如果想在多个文件中使用同一个变量或函数,该怎么办呢?嘿嘿,extern闪亮登场!你只需要在一个文件中定义这个变量或函数,然后在其他文件中使用extern声明一下,就可以愉快地共享了。

2.2 避免重复定义

你有没有遇到过这种情况:一个函数或变量在多个文件中被重复定义。这时候,编译器会毫不留情地给你报错。而使用extern,就可以避免这个问题。因为extern只是声明,不是定义,所以不会产生重复定义的错误。

3. “extern”的槽点

虽然extern有时候很管用,但它也有一些槽点。

3.1 隐患重重

由于extern只是声明,不是定义,所以在使用它的时候,必须确保在其他地方有对应的定义。否则,程序在链接的时候就会报错。这就好比借钱给别人,却忘了让对方写借条,最后有苦说不出。

3.2 可读性下降

在一个项目中,如果滥用extern,会导致代码可读性下降。特别是当你看到满屏的extern声明,却不知道这些变量或函数在哪个文件定义时,是不是有种想砸键盘的冲动?

4. “extern”的正确打开方式

为了避免extern带来的麻烦,我们该如何正确使用它呢?

4.1 适量使用

不要滥用extern,只有在确实需要跨文件共享变量或函数时才使用。

4.2 明确定义

在使用extern声明变量或函数时,尽量在注释中说明其定义位置,以便其他人阅读代码。

4.3 优先使用头文件

如果可能,尽量通过头文件来共享变量或函数,而不是使用extern

5. 结语

总之,extern在C语言中是个相当“个性”的关键字。虽然它有时候让人头疼,但只要我们掌握它的正确用法,就能让它为我们的项目带来便利。最后,让我们以一句名言共勉:“不要害怕extern,要害怕的是不懂extern。” (全文完,谢谢观赏!PS:这篇文章纯属娱乐,如有不适,请谅解。)