首页后端开发ASP.NET在C/C++中如何使用extern关键字

在C/C++中如何使用extern关键字

时间2024-01-31 05:05:03发布访客分类ASP.NET浏览432
导读:收集整理的这篇文章主要介绍了在C/C++中如何使用extern关键字,觉得挺不错的,现在分享给大家,也给大家做个参考。 本篇文章介绍的是C/C++中extern关键字的用法,其中主要谈到修饰变量时的用法,可以参考一...
收集整理的这篇文章主要介绍了在C/C++中如何使用extern关键字,觉得挺不错的,现在分享给大家,也给大家做个参考。

本篇文章介绍的是C/C++中extern关键字的用法,其中主要谈到修饰变量时的用法,可以参考一下,希望对你有所帮助。

1.基本解释
 extern 可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外,extern 也可以用来链接指定。
 extern 有两个作用:(1) 当它与"C"一起连用时,如:extern “C” void func(int a);则告诉编译器在编译 func 函数名时按着 C 的规则去翻译相应的函数名而不是 C++ 的。关于这点,或许可以在《深度探索C++对象模型》一书中寻找答案;另外,在 Linux 下有一个 backtrace 函数可以打印堆栈信息,可以查看 C++ 翻译的函数名(muduo 库中有使用这个函数)。
 (2) 当 extern 不与 “C” 在一起修饰变量或者函数时,如在头文件中:extern int g_Int; 它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块或者其他模块中使用,记住它是一个声明不是定义!
2.当 extern 修饰变量时
 正确使用方法是:在 .c 文件中定义变量,在相应的 .h 文件中进行声明。
 我们通过是否会为变量来分配内存空间来判定是声明还是定义(严格来说,是单纯的分配内存,并不包括初始化部分)。那么 int i; 这句话是声明还是定义那?它既是声明,也是定义。如果我们在 test.h 文件中使用这句话,一旦在其他文件中定义 i(e.g.1),或者该文件被重复包含(e.g.2),那么就会产生重定义的错误。

/*	e.g.1 	以下为3个文件*///test.hint i;
    //test2.hint i;
//main.cpp#include "test.h"#include "test2.h"int main(){
    	return 0;
}
    
/*	e.g.2 	以下为3个文件*///test.hint i;
//test2.h#include "test.h"//main.cpp#include "test.h"#include "test2.h"int main(){
    	return 0;
}
    

相关教程:C视频教程

以上就是在C/C++中如何使用extern关键字的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: 如何在C#中使用Bogus去创建模拟数...下一篇:c#中反射是什么?猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 在C/C++中如何使用extern关键字
本文地址: https://pptw.com/jishu/593517.html
.net中的重载是什么? javascript如何判断是否包含指定字符串

游客 回复需填写必要信息