首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C基础2-extern关键字

C基础2-extern关键字

原创
作者头像
Swing Dunn
发布2025-11-25 11:09:51
发布2025-11-25 11:09:51
1860
举报
文章被收录于专栏:CLanguageFCLanguageF

extern关键字的三点用法与一点注意:

extern关键字的作用是支持多文件编程和跨作用域共享符号

1.extern声明外部变量,使多文件共享全局变量

2.extern声明外部函数,多文件共享函数(extern仅声明函数原型,在实现处分配内存)

3.extern "C" {}: 解决C/C++混合编程中的命名冲突问题; C++编译器会对函数名进行整饰,C编译器不会,使用extern "C"可以避免名称不一致导致的链接错误。

4.extern与static的对立关系

static:限制符号(变量、函数)的作用域为当前文件

extern:对外部可见(对于static修饰的全局变量,不能叠加extern)

在.c文件中定义函数(分配内存)

代码语言:txt
复制
int multiply(int a, int b)
{
	return a * b;
}

在.h文件中使用extern ”C" 和条件编译,使其支持在C++中调用

代码语言:txt
复制
#pragma once
#ifndef C_FUNC_H
#define C_FUNC_H

#ifdef _cplusplus
extern "C" {
#endif

	int multiply(int x, int y);

#ifdef _cplusplus
	}
#endif
#endif // !C_FUNC_H

在C++文件中,调用函数

代码语言:txt
复制
#include <iostream>
#include "Test2.h"

int main()
{
	int res = multiply(4, 6);
	std::cout << "4 * 6 = " << res << std::endl;
	system("pause");
	return 0;
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档