
extern关键字的三点用法与一点注意:
extern关键字的作用是支持多文件编程和跨作用域共享符号
1.extern声明外部变量,使多文件共享全局变量
2.extern声明外部函数,多文件共享函数(extern仅声明函数原型,在实现处分配内存)
3.extern "C" {}: 解决C/C++混合编程中的命名冲突问题; C++编译器会对函数名进行整饰,C编译器不会,使用extern "C"可以避免名称不一致导致的链接错误。
4.extern与static的对立关系
static:限制符号(变量、函数)的作用域为当前文件
extern:对外部可见(对于static修饰的全局变量,不能叠加extern)
在.c文件中定义函数(分配内存)
int multiply(int a, int b)
{
return a * b;
}在.h文件中使用extern ”C" 和条件编译,使其支持在C++中调用
#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++文件中,调用函数
#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 删除。