`

javer学c++: 全局函数, 全局变量

    博客分类:
  • c++
阅读更多

c++中函数默认就是全局的, 变量写在函数外的话默认也是全局的.

Global.cpp, 定义一个全局变量和一个全局函数
#include <iostream>
using namespace std;

int g_int = 10;

void globalMethod()
{
    cout << "globalMethod()" << '\n';
}


全局函数的声明需要使用extern关键字, 以告诉编译器, 这是在其它地方定义了的变量或函数.
Main.cpp
#include <iostream>
using namespace std;

extern int g_int; // 全局变量的声明, 一定要加上extern才行

extern void globalMethod(); // 全局函数的声明, extern可加可不加, 但最好加上以表名是全局函数

int main(void)
{
    globalMethod();
    cout << "g_int:" << g_int << '\n';
    return 0;
}



对于库的话, 全局函数一般会以.h头文件的形式开放出来, 不然谁知道库中有哪些函数呢!
上面的就会提取出一个Global.h:

Global.h
#ifndef GLOBAL_H_
#define GLOBAL_H_

extern int g_int;

extern void globalMehtod();

#endif


然后在Main.cpp中:
Main.cpp
#include <iostream>
#include "Global.h"

using namespace std;

int main(void)
{
    globalMethod();
    cout << "g_int:" << g_int << '\n';
    return 0;
}




分享到:
评论

相关推荐

    JNI:Java与C++的美好结合 视频地址

    我们知道,在C层有*.SO,它有全局变量,不要将Java或C++对象参考储存于C层的全局变量,把动态的对象指针放在全局变量是不好的。这样可以增加C函数的稳定度,包括它的通用性,可适应于更多更多的环境里使用,表示它...

    NDKC调用Java函数传参或获取变量

    C/C++获取Java的全局变量: 获取int类型和String类型变量并重新赋值: https://blog.csdn.net/niuba123456/article/details/80990063 获取静态变量: https://blog.csdn.net/niuba123456/article/details/80990237

    Python全局变量-函数内部不允许修改局部变量的值

    Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器...

    c++和java 的区别

    C++与Java之间的最大不同可能是Java不支持指针; Java不包含结构或者联合; Java不支持操作符重载; Java不包括预处理,也...Java中不包含全局变量或全局函数; Java不支持多重继承,即不允许一个子类继承多个父类;

    c++string类的实现

    3) 有些函数返回的是MyString& 、Char& 等(引用),MyString、Char 等(传值)这得看你返回的对象是函数的局部变量还是全局变量(或者类当前对象成员变量);前者只能返回一个MyString、Char 等;后者强烈建议返回...

    java基础入门教程

    香 港 则 在 今 年 4月 就 举 行 了 全 岛 的 Java杯 比 赛 ,在 计 算 机界掀 起 了 学 习 Java的热 潮 (尤 其 是 在 大 学 生 们 中 ,出 现 了 一 批 Java迷 )。 有 人 预 言 :Java将 是 网 络 上 的 "世 界 语 ...

    Android C++高级编程:使用NDK_Onur Cinar, 于红PDF电子书下载 带书签目录 完整版

    4.4.1 全局变量 94 4.4.2 常量 95 4.4.3 只读变量 96 4.4.4 枚举 97 4.4.5 结构体 100 4.4.6 指针 101 4.5 封装C++代码 101 4.5.1 指针、引用和值 102 4.5.2 默认参数 103 4.5.3 重载函数 104 4.5.4 类 ...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    2.11.3 全局变量 77 2.11.4 静态变量 80 2.12 名称空间 80 2.12.1 声明名称空间 81 2.12.2 多个名称空间 82 2.13 C++/CLI编程 84 2.13.1 C++/CLI特有的基本数据类型 84 2.13.2 命令行上的C++/CLI输出 87 ...

    Visual C++ 2005入门经典--源代码及课后练习答案

    2.7.3 全局变量 79 2.7.4 静态变量 82 2.8 命名空间 83 2.8.1 声明命名空间 84 2.8.2 多个命名空间 86 2.9 C++/CLI编程 87 2.9.1 C++/CLI特有的基本数据类型 87 2.9.2 命令行上的C++/CLI输出 91 ...

    Linux多线程服务端编程:使用muduo C++网络库

    《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...

    最新中农大线上作业Java语言与面向对象程序设计A-F(1).doc

    函数和全局变量 参考答案:C 您的答案:A 6、对象由一组"属性"和一组对属性进行"操作"的服务组成,是存在的具体实体,具有明 确定义的状态和行为。因此,一个具体对象被称做( )。 A.实例 B.变量 C.组合体 D...

    java堆栈的区别 -- 详解

    3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字...

    电子类软硬件面试集锦

    例如全局变量。 二、在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 ...

    C++复习资料之系列

    在一个C++程序中,main函数的位置( c )。 (a) 必须在程序的开头 (b) 必须在程序的后面 ( c ) 可以在程序的任何地方 (d) 必须在其它函数中间 2.用C++语言编制的源程序要变为目标程序必须要经过( d )。 (a) ...

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    计算机类基础问题

     C语言考查的重点一般是:指针、结构体、条件编译、全局变量/局部变量。以下是 我遇见过的面试问题: 1)请说一下extern C的作用(汉略) 2)请说一下#ifdef...的作用(汉略) 3)C语言里,哪些变量是存放在堆里,...

    SourceInsight_V3.5.76.0

    Source Insight自动创建并维护它自己高性能的符号数据库,包括函数、method、全局变量、结构、类和工程源文件里定义的其它类型的符号。Source Insight 可以迅速地更新的文件信息,即使在编辑代码的时候。而且符号...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

    在一小时内学会 C#(txt版本)

    4. C# 中没有全局变量或全局函数,取而代之的是通过静态函数和静态变量完成的。 数据类型 所有 C# 的类型都是从 object 类继承的。有两种数据类型: 1. 基本/内建类型 2. 用户定义类型 以下是 C# 内建类型的...

    SourceInsight3.5

    Source Insight自动创建并维护它自己高性能的符号数据库,包括函数、method、全局变量、结构、类和工程源文件里定义的其它类型的符号。Source Insight 可以迅速地更新的文件信息,即使在编辑代码的时候。而且符号...

Global site tag (gtag.js) - Google Analytics