1、extern的理解和实验
来源:互联网 发布:淘宝球鞋世家是真的吗 编辑:程序博客网 时间:2024/06/06 03:23
用extern声明一个变量,编译器必须在其他某处找到定义才行,否则会报错,定义不能在某一函数中,即不能在某一作用域{}中
比如在头文件xxx.h中声明extern int externtest ,举两种错误情况;
第一:
在xxx.cpp中有一个函数Fun(),若只在Fun中写“externtest = 1",则会报错“ LNK2001: 无法解析的外部符号”。因为abc还没有定义。这里要注意“定义”是需要类型说明符的,单纯一句abc = 1不是定义,是使用变量。
第二:
若在Fun()中写int externtest = 1;这时externtest只是Fun()中的局部变量,在Fun()中可以用,在全局范围内externtest仍然是没有定义的,在其他函数,比如main函数中仍然不可用,会出现同样的LNK2001错误。
所以:
必须在函数体之外,比如xxx.cpp中定义 int externtest = 1;此时externtest可供所有#include "xxx.h"的.cpp使用,即只需在一个cpp内的全局范围定义externtest,其他cpp中只需要声明extern int externtest即可。而最初定义externtest的那个cpp不需要先用extern int来声明,直接int extern 声明+定义即可。
0 0
- 1、extern的理解和实验
- extern和static的理解
- extern "C"的理解
- extern "C"的理解
- extern "C"的理解
- 简单理解一道关于#ifndef 和extern "C"的题
- C语言中extern关键字的使用和理解
- 关于db_block_size的理解和实验
- 关于extern “C”的理解
- const,static,extern 的理解
- 汇编语言实验1-实验平台、理解寄存器和内存
- 对static、extern和文件包含的理解1
- extern和extern "C"的分析
- extern 和extern “C"的问题
- 【static&extern】static和extern的区别
- C++重载和extern C理解
- extern你真的理解吗?
- C/C++ 中 extern 的个人理解
- 关于oracle11g数据库的安装,创建实例,创建表空间,授权完整版
- 13.5.1 写数据到 Excel
- 第一周项目一:旱冰场造价
- 人生需要沉淀
- C语言100个经典的算法
- 1、extern的理解和实验
- Java NIO 选择器(Selector)的内部实现(poll epoll)
- Linux7.0下简单DNS服务配置实验
- Java IO流详解(五)
- 四行大写字符统计直方图
- C++常量成员常量返回值详解
- 接收不到拖放文件消息[WM_DROPFILES]的解决方法
- 点击空白处取消第一响应的三种方法!
- OpenGL学习-2-鼠标事件响应练习工程代码(排错补档)