c++语言所有函数都是外部函数.,简单讲解C++的内部和外部函数以及宏的定义

2023-10-29

C++内部函数和外部函数

函数本质上是全局的,因为一个函数要被另外的函数调用,但是,也可以指定函数只能被本文件调用,而不能被其他文件调用。根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。

内部函数

如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加static。函数首部的一般格式为:

static 类型标识符 函数名(形参表);

static int fun(int a, int b);

内部函数又称静态(static)函数。使用内部函数,可以使函数只局限于所在文件。如果在不同的文件中有同名的内部函数,互不干扰。通常把只能由同一文件使用的函数和外部变量放在一个文件中,在它们前面都冠以static使之局部化,其他文件不能引用。

外部函数

在定义函数时,如果在函数首部的最左端冠以关键字extern,则表示此函数是外部函数,可供其他文件调用。如函数首部可以写为:

extern int fun (int a, int b);

这样,函数fun就可以为其他文件调用。如果在定义函数时省略extern,则默认为外部函数。本教程前面所用的函数都是外部函数。

在需要调用此函数的文件中,用extern声明所用的函数是外部函数。

【例】输入两个整数,要求输出其中的大者,用外部函数实现。

/*******file1.cpp(文件1)*******/

#include

using namespace std;

int main( )

<
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++语言所有函数都是外部函数.,简单讲解C++的内部和外部函数以及宏的定义 的相关文章

  • 【webpack】webpack打包后, 静态图片资源不显示的若干个问题

    背景 最近在搭建公司的前端组件库 vue写的 webpack打包后 在项目中引用组件库 其中有个组件引用了静态图片资源 然而打包后在项目中引用该组件的图片就不显示了 遇到了以下问题 小小记录一下 1 打包时报错 问题 webpack打包时报
  • QT:头部菜单栏和右击菜单事件

    实现思路 1 gt 每一个小的选项都是一个action 项 一个menu 菜单 可以盛放很多action 一个菜单栏 QMenuBar 可以盛放很多menu 2 gt 把以上的嵌套起来就组合成了头部菜单栏 一般只能设置一个 3 gt men
  • Android的第一天

    早就想学下Android开发了 目前为止flash开发Android还不给力 所以还是老老实实的研究用java 开发 apk吧 下载好了 Android开发视频 看了两个视频 现在开始配置环境 ADK https dl ssl google
  • 在kali中进行bp字典爆破——攻防世界weak_auth结尾附带常用bp字典

    第一步 在kali中启动burpsuite 第二步 进入Proxy代理模块 代理模块是Burp的核心模块也是我们平时使用最多的模块 它主要用来拦截并修改浏览器 手机APP等客户端的HTTP HTTPS数据包 第三步 打开代理的浏览器进入题目
  • matlab函数 在线说明,matlab函数说明

    如果你刚接触matlab 可以看这篇Matlab自定义函数详解 MATLAB自定义函数形式function a b c funname x1 x2 x3 输入变量 对于输入变量 MATLAB可以识别输入变量的个数 通过nargin来记录当前
  • VC/MFC如何设置对话框背景颜色

    方法一 调用CWinApp类的成员函数SetDialogBkColor来实现 这个函数已经废弃 1 void SetDialogBkColor COLORREF clrCtlBk RGB 192 192 192 COLORREF clrCt
  • 二、OSPFv2 LSA详解

    OSPFv2 LSA 什么是LSA LSA头格式 LSA的类型 Router LSA Type 1 路由器LSA 类型1 Network LSA Type2 网络LSA 类型2 Network Summary LSA Type3 网络汇总L
  • 考研OR工作----计算机操作系统简答题及疑难知识点总结(第二章 进程的描述与控制)

    计算机操作系统从第二章开始内容会变得异常多 还是希望能够帮助到大家 在这一章阿婆主还会把书上的典型的PV操作题给打上来 给大家用作参考 如果有问题的地方 还请大家在文章下方留言 我好更正 或者你们有更好的PV操作的解法 也欢迎大家在文章下方
  • 从入门到渐入佳境——记我的第六届字节青训营经历

    文章目录 为什么参加 开营前 开营后 做项目 准备答辩 为什么参加 参加第六届字节青训营之前 我也参加了今年5 6月的第五届青训营 最初是在我们学校一个工作室群里看到的 是一个学长发出来的 当时看到了非常感兴趣 想着是学点新知识 因为当时我
  • C++中sort函数详解

    原文链接点这 0 简介 sort函数用于C 中 对给定区间所有元素进行排序 默认为升序 也可进行降序排序 sort函数进行排序的时间复杂度为n log2n 比冒泡之类的排序算法效率要高 sort函数包含在头文件为 include的c 标准库
  • 性能测试基础概念和分类

    什么是性能测试 gt 在给定环境和场景中进行的测试活动 gt 根据测试结果评判是否存在性能问题 gt 如果存在性能问题 编辑定位性能瓶颈 并提出改进建议 性能不仅仅包括响应时间 还包括资源的占用 性能测试基本流程 1 性能测试需求分析 项目
  • vue项目中使用pdf.js预览pdf文件

    项目要求需要预览pdf文件 网上找了很久 大多数都是推荐pdf js 自己先了解了一下 最后决定用pdf js 但是发现 在vue中使用这个很少 所以我就写这一篇帮助一下vue使用pdfjs的朋友 其实 这和前端框架无关的 直接使用pdf
  • C++ 多态类型

    多态 C 在面向对象中 多态就是不同对象收到相同消息 执行不同的操作 在程序设计中 多态性是名字相同的函数 这些函数执行不同或相似的操作 这样就可以用同一个函数名调用不同内容的函数 简而言之 一个接口 多种方法 多态是以封装和继承为基础的
  • android 注册页面实现

    自己动手做的第一个demo 简单的注册页面的实现 并且注册成功后返回注册信息 适用于android新手基本控件的使用 注册页面的实现 import android os Bundle import android app Activity
  • 如果确定游戏服务器位置,如果确定游戏服务器位置

    如果确定游戏服务器位置 内容精选 换一换 远程登录服务器出现蓝屏或黑屏 可能是由于explorer exe进程异常导致的桌面无法显示 这是由于Windows服务器的explorer exe进程异常导致的 explorer exe是Windo
  • 腾讯混元大模型:新一代人机环境系统智能的发展趋势

    近日 腾讯混元大模型亮相 该通用大语言模型具备强大的中文创作能力 复杂语境下的逻辑推理能力 以及可靠的任务执行能力 同时也可以作为基底模型 为不同产业场景构建专属应用 从可靠 成熟 自研和实用的底层逻辑来看 腾讯混元大模型其实是建立在人机环
  • 算法设计学习记录(一):G-S算法实现稳定匹配

    最近这几周在复习微机原理 不可避免地重燃了对硬件的兴趣 一度想要拿下一张树莓派玩玩 好在这东西不便宜 思来想去还是决定暂时放放 一直有在考虑自己未来的发展方向 自动驾驶还是交通运输 这对我来说是一个很难决定的事情 回过头来想 其实现在确实想
  • 解决 if you already hava 64-bit JDK installed,define a JAVA_HOME variable in Computer>System....

    启动Android studio 弹窗 提示如图 一般是修改studio64 exe vmoptions文件出差 例如我的studio64 exe vmoptions位于C Users 24359 AppData Roaming Googl
  • vue3+scss开启写轮眼

    vue3 scss开启写轮眼 一 相关技术 二 使用步骤 1 安装依赖 2 眼球 3 勾玉 4 旋转动画 5 综合 一 相关技术 采用vue3 vite scss的技术内容进行开发 二 使用步骤 1 安装依赖 代码如下 npm instal

随机推荐

  • vue3+ts+webpack 搭建+环境配置+路由

    一 搭建 vue js webpack的项目 1 vite vue cli 版本在 4 5 0 以上 我用的5 0 4 npm install g vue cli vue V 创建项目 vue create 项目名字 安装依赖运行项目 cd
  • CentOS7 Install nodejs & npm

    1 安装nodejs npm yum install y nodejs npm 2 n Interactively Manage Your Node js Versions npm install g n 安装提示 root localho
  • 如何让 git 使用我选择的编辑器来编辑提交消息?

    问 如何全局配置 git 以使用特定编辑器 例如 vim 来提交消息 答1 一个优秀的自由职业者 应该有对需求敏感和精准需求捕获的能力 而huntsbot com提供了这个机会 设置 Git 的默认编辑器 选一个 在你的 Git 配置中设置
  • msvcp140.dll缺失解决办法

    出现dll缺失 可以考虑如下情况 推荐使用修复功能 能解决大部分情况 如果是开发者 有可能是发布的debug版本 在其它电脑没环境 下面的是各版本对应版本号 推荐使用release版本 可以解决大部分情况 msvcp msvcr vcomp
  • Ubuntu安装solc编译环境步骤

    Ubuntu安装solc编译环境步骤 cmake装过程 安装Z3 安装Boost Solidity安装 Ethereum使用 更进一步的开发 cmake装过程 solc编译器需要的cmake版本要大于3 9 0 所以要安装高于这个版本的cm
  • 论文笔记:FeUdal Networks for Hierarchical Reinforcement Learning

    0 abstract introduction 这也是一篇分层强化学习的论文 分为两层 Manager 上层 设置抽象的goal 这个goal传递给Worker 和H DQN不同 这个goal是由Manager自己学出来的 或者说 FUN不
  • Linux 下系统调用的三种方法

    系统调用 System Call 是操作系统为在用户态运行的进程与硬件设备 如CPU 磁盘 打印机等 进行交互提供的一组接口 当用户进程需要发生系统调用时 CPU 通过软中断切换到内核态开始执行内核系统调用函数 下面介绍Linux 下三种发
  • redis 高级应用之二(Redis的持久化 和 消息的[pub/sub]发布和订阅)

    1 Redis的持久化机制 redis是个支持持久化的内存数据库 也就是说redis要经常把内存中的数据保存到硬盘中来保证持久化 redis持久化方式有两种 snapshotting 快照 也是默认方式 原理 默认redis是会以快照的形式
  • Apache Tomcat 漏洞复现

    文章目录 Apache Tomcat 漏洞复现 1 Tomcat7 弱密码和后端 Getshell 漏洞 1 1 漏洞描述 1 2 漏洞复现 1 3 漏洞利用 1 3 1 jsp小马 1 3 2 jsp大马 1 4 安全加固 2 Aapac
  • Mybatis多表联查的几种办法

    前言 开发过程中 对数据库多表连接查询是常规操作 Mybatis plus 在多表连接查询上提供了很好的支持 通常 表与表之间存在四种映射关系 一对一映射 多对一映射 一对多映射 多对多映射 在处理的过程中 多对一和一对一映射一般采用同一种
  • vb.net制作动态链接库(*.dll)

    dll制作专栏 关于vb net图像 视频处理的类库调用 大Mod制造者abfun的博客 CSDN博客 新建一个类库 我相信这不需要细讲了 dll有什么优点 第一 减少应用程序体积 但是单独的dll有时也会占用不少空间 第二 减少程序内存
  • 【Neo4j】第 7 章:社区检测和相似性措施

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Java BufferedWriter.write()具有什么功能呢?

    转自 Java BufferedWriter write 具有什么功能呢 BufferedWriter write 功能说明 bufferedWriter write 写入数据到文件中 由于缓冲区大小有限 需调用flush方法及时刷新缓冲区
  • HTML——列表标签

    使用场景 在网页中按照行展示关联性的内容 如 新闻列表 排行榜 账单等 特点 按照行的方式 整齐显示内容 种类 无序列表 有序列表 自定义列表 1 无序列表 ul 标签表示 HTML 页面中项目的无序列表 一般会以项目符号呈现列表项 而列表
  • Matlab实现支持向量机算法(附上多个完整仿真源码)

    支持向量机是一种常见的机器学习算法 它可以用于分类和回归问题 在Matlab中使用支持向量机 可以方便地构建和训练模型 并进行预测和评估 本文将介绍Matlab支持向量机的基本原理以及一个简单的分类案例 文章目录 1 支持向量机的基本原理
  • 华为网络工程师虚拟服务器软件,软考网络工程师华为、思科指令大全

    原标题 软考网络工程师华为 思科指令大全 华为命令大全 一 配置交换机的名称和密文密码 用户视图 system view 进入系统视图配置 Huawei 系统视图 Huawei quit 或 return 退出系统视图模式 Huawei s
  • 如何在完成css路由跳转动画样式的同时完成umi路由鉴权?

    具体解决步骤 1 在src的目录下 和page同级 新建一个wrappers文件夹 这个名称是固定的 在文件夹下新建 Auth tsx文件 2 在文件里面的写入以下内容 import Redirect from umi export def
  • SpringBoot 中 @SpringBootApplication注解背后的三体结构探秘

    概 述 SpringBoot 约定大于配置 的功力让我们如沐春风 在我之前写的文章 从SpringBoot到SpringMVC 也对比过 SpringBoot 和 SpringMVC 这两个框架 不过最终 SpringBoot 以超高的代码
  • 计算机网络 : 综合实验

    打算稍微做一下实验课程的回顾 话不多说 正文开始 期末周的好同志就是这么单刀直入 综合实验 实验目的和要求 实验图 实验原理 实验仪器设备 实验步骤 过程数据记录 实验结果分析与总结 实验目的和要求 了解路由协议的作用 学习动态路由协议的工
  • c++语言所有函数都是外部函数.,简单讲解C++的内部和外部函数以及宏的定义

    C 内部函数和外部函数 函数本质上是全局的 因为一个函数要被另外的函数调用 但是 也可以指定函数只能被本文件调用 而不能被其他文件调用 根据函数能否被其他源文件调用 将函数区分为内部函数和外部函数 内部函数 如果一个函数只能被本文件中其他函