因为我当时老师讲的时候,并没有完全懂里面的原理,自己下来把各种情况都试了一遍,先记录下,以后好查漏补缺。

1.

#include <iostream>

#include"fn1.h"

using namespace std;

int n;
int main()
{
       n=5;
        fn1();
        cout<<n<<endl;
    return 0;
}

#pragma once

extern int n;
void fn1(){
     int n;
     n++;
     }

输出:

5

如果fn1()中的 int n;注释掉,则输出6。

2.

#include <iostream>
#include"fn1.h"

using namespace std;

int n;

int main()
{
        int n;
        n=5;
        fn1();
        cout<<n<<endl;

return 0;
}

#pragma once
// extern int n;
void fn1(){
     int n;
     n++;
     }

如果在main函数中声明n,在fn1中又声明了一次,结果输出为5,。但是若n声明在全局,clude包含在全局n的下面,如下所示,输出为6。

#include <iostream>

using namespace std;
   
   int n;

#include"fn1.h"
int main()
{

n=5;
        fn1();
        cout<<n<<endl;

return 0;
}

#pragma once

// extern int n;
void fn1(){
//    int n;
     n++;
     }

但是若在fn1中声明int n,输出又为5.

转载于:https://www.cnblogs.com/zhangmingzhao/p/7256496.html

C++添加一个头文件和extern以及全局变量和局部变量问题(清C++蓝书16.3.19上机的一小题)...相关推荐

  1. linux下各个头文件及作用总结

    #include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件. #include <asm/***.h> 是在linux ...

  2. X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件

    X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件 <<<<<<<<<<<<<< ...

  3. linux接口 头文件,第一种:1、添加关键头文件:#include linux/of_gpio.h#include linux/gpio.h...

    第一种: 1.添加关键头文件: #include #include #include #include #include #include 2.在已经存在驱动文件中搜索"DEVICE_ATT ...

  4. alios 系统配置转存到一个头文件

    用si查看alios的代码 由于alios的编译配置项定义在yaml文件中,si不能自动识别程序中使用的各种宏定义. aos config | sed "s/^/#define &/ ...

  5. QT用法--添加外部库文件(lib文件)

    因为我在工作的过程中,使用的是第三方提供的库,但是如何将这些库添加到QT的工程中,是个问题,让我恼火了很久,怎么弄都是错的. 下面,我会对这个问题,进行叙述,希望其他人第一次遇到这种问题的时候,可以轻 ...

  6. VS添加万能头文件(超详细)

    <bits/stdc++.h>这个头文件被大家亲切地成为万能头文件,在敲代码的时候往往可以给我们省去很多时间,但是这个头文件在VS中并没有,喜欢用VS的人经常为此感到烦恼,我就在为添加这个 ...

  7. 编写一个头文件,头文件中定义一个宏cube(x)用于求一个数的平方

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p145 7.1.2 上级实训内容 [实现内容17]编写一个头文件,头文件中定义一个宏cube(x)用于 ...

  8. IntelliJ IDEA 添加本地xsd文件

    File-->Settings-->Languages & Frameworks-->Schemas and DTDs,点击右上角的绿色加号 出现添加本地xsd文件弹窗,UR ...

  9. c语言中.h文件中的宏定义,endian.h这个头文件里面的宏可以直接用么?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 endian.h头文件中以宏的形式定义了大端字节序.小端字节序和混合字节序 #define __LITTLE_ENDIAN 1234 #define __ ...

最新文章

  1. LeetCode Count Primes
  2. 挨踢人生路--记我的10年18家工作经历 - 第16家公司,英国公司――第一次当经理...
  3. 用Spring长轮询Tomcat
  4. C++重载下标运算符
  5. 2019年网络规划设计师上午真题及答案解析
  6. 非标自动化企业前十名_自动化输送+旋盖,竟如此简单!机械设计教程精选!...
  7. 基于python的音乐推荐系统
  8. bigemap软件优势
  9. matlab线性同余发生器,线性同余法生成伪随机数
  10. 时速云CEO:相对于IaaS和PaaS,未来CaaS将如何定位?
  11. 电容或电感的电压_电工入门基础之电容、电感
  12. 【175】Easy CHM的使用
  13. php获得视频文件扩展名,php 获取文件扩展名的 n 种方法
  14. 病毒木马查杀实战第017篇:U盘病毒之专杀工具的编写
  15. 回归模型+自变量和因变量之间的关系、回归模型的种类、回归模型的输出类型、个数角度
  16. 差异性分析该如何选择?
  17. 什么样的代码是好代码_什么使好代码3 7
  18. 手机投屏不是全屏怎么办_手机投屏win10怎么退出全屏详细图文教程
  19. 海思SD3403开发板学习(五)
  20. 【译】2021 Go 趋势报告

热门文章

  1. java取得当前日期增加一天或多天
  2. Embeded linux之地址映射
  3. MySql 获取当前节点及递归所有上级节点
  4. CCNA2.0笔记_TCP/IP概述
  5. node.js 学习
  6. MySQL新建用户,授权,删去用户,修改密码操作
  7. javascript闭包小结
  8. Git学习(二)远程仓库建立与克隆
  9. python pip 重新安装mysql_解决Ubuntu pip 安装 mysql-python包出错的问题
  10. 公众号内打开提示404_微信公众号文章内如何插入视频?