c++中如何跨cpp文件调用结构体变量

如题所述

//可以用头文件(拓展名为.h)将编辑好的结构体保存下来。在调用时可以用#include语句调用。具体调用方法为:
#include<头文件路径+头文件名.h>
//或者将头文件放入Dev-Cpp文件夹下的include文件夹中,这样可以不写头文件路径:
#include<头文件名.h>

//例如一个已保存的头文件全文如下(huge_number.h):
struct bigNumber
{
    int len,num[1000];
};

//将它放入Dev-Cpp\include中后在另一个文件里可以如此调用:
#include<huge_number.h>
//...
bigNumber a;//于是a声明为结构体变量

//还可以调用用头文件中已经定义的函数、宏定义、变量、常量

//例如一个已保存的头文件全文如下(little_math.h):
#define REP(start,end) for(int i=start;i<=end;i++)
long long power(int base,int exp)
{
    long long t=1;
    REP(1,exp)
        t*=base;
    return t;
}

//将它放入Dev-Cpp\include中后在另一个文件里可以如此调用:
#include<little_math.h>
#include<cstdio>
int main()
{
    REP(1,5)
        printf("%lld\n",power(i,i));
    return 0;
}
/*输出结果为:
1
4
27
256
3125*/

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-03
建立一个工程,把多个.cpp文件添加进入,按built(构建),就能把工程里各个.cpp连在一起。追问

这样无法达到 我在 main函数的cpp文件的main函数外部 定义结构体类型 但是 别的cpp 统统没法用,只有再定义一遍

追答

在其他.cpp使用时,在结构体变量前面加个extern

本回答被提问者采纳
第2个回答  2018-07-22
假如a.cpp中有个结构体struct A 需要在b.cpp中使用
b.cpp中加入extern struct A;就可以使用了

c++ 结构体之间的调用, 现在我用 【两个文件】
file2中如下操作:Struct A { } ; \/\/与file1中相同的定义 Struct B { ...;Struct A a;} 第二种做法参照 倒霉熊lujin 的

c++怎么从一个文件中读数据到结构体中?
首先把目标明确,结构体是表达数据的存放方式,文件也有文件自己的数据格式化存放方式,要从文件读取数据到结构体中,必须要保证这个文件的数据格式化存放方式与内存中的结构体一致,这样才按照你所说的直接读取数据到结构体里面(不知道你是不是要表达这个意思?),其次我们要明确,文件在磁盘上属于外存,你...

结构体 c++ 如何定义结构体 在1.cpp 中, 结构体变量值放在2.cpp, 在...
首先你定义结构体,放在1.h头文件里面 然后你在2.cpp文件里面定义变量(记得包含1.h头文件)然后你3.cpp也要包含1.h头文件,其他照样写,可以用2.cpp的变量,但是结束后编译的时候需要联合编译2.cpp,这样才可以用2.cpp里面的变量 ---注意,是联合编译2.cpp,编译器都有这个功能的 ...

C#如何调用C++的DLL的结构体数组指针
1、添加引用 右击项目-添加引用-浏览 找到本地的dll文件 2、using 该dll文件里面代码的名称空间 然后就可以调用dll文件里面的类(test)和方法(add)了 例如:using aa.test namespace conslole1 { class Program { static void Main(string[] args){ Test test1=new Test();test1.add(1, 2);}...

c++里面,传入一个结构体指针,如何将该指针指向的结构体赋值给另一个结 ...
如果是这样的话,没有办法把一个opaque的实例通过指针进行直接访问,除非提供这个结构体定义的库同时提供了对应的API操作例如拷贝、修改之类的。之所以如此,可能设计时有意保留了对于结构体变化的灵活性。例如需要增添一个新的member(int z) 时,对客户代码没有影响。其他一切hackary手段来实现这个目的都...

C++创建一个结构体应该放在.cpp文件中吗?然后调用的时候只要包含这个.c...
应该建一个头文件(如head.h), 然后把结构体还有函数的声明放在这个头文件里,然后在建一个.cpp文件(如head.cpp),文件开头包含这个头文件(#include "head.h"),函数的实现全放在这个文件里。完了之后其他程序只要包含这个头文件(#include "head.h"),就可以使用这个结构体和这些函数了。

C++如何读入一个文件中的结构体数组数据?
1,sizeof(t), fp);或 file.read(&t, sizeof(t));2 如果文件中,是以文本方式存储的可读的结构体数据:需要根据文件中数据的存储格式,通过fscanf(C语言风格)或ifstream的>>成员函数,读取各个值到对应的结构体成员变量中。如 struct test t;fscanf(fp, "%d",&t.a);或 file>>t.a;...

在MFC(C++)中定义了一个全局结构体,在其他函数中用这个结构体,编译调 ...
这个放错了位子,在course.h头文件里只需要声明结构体即可,在course.cpp中定义,这样一个完整的结构体就成功了。你的想法应该是想在course.cpp以外的文件中调用结构体song,这个时候在你需要调用 song aa[5]的文件中声明extern song aa[5]即可。当然切记需要将course.h包含进来。希望能帮到你......

c语言中 多文件中的 结构体调用 需要注意什么?为什么我的使用中总提示...
将这两个文件放到同一级目录,在主文件所在的文件(main)的头部 include "Felname.C";不要把那个文件写好后才进行这个操作,两个文件随时要保持同步,写下编译一下,两个文件对接好后,再展开,不过写的同时,要多编译。有错误在一个文件不会出现,到那个文件会出现。因为C本身就是面向过程的,...

我下了一些vc++程序是用.h和.cpp分开写的怎样运行
首先要明白这些文件时什么文件,再用编译器,例如:VC6.0,Dev C++等编译环境中运行,文件扩张名是.h,代表的话头文件,一般是书写一些函数原型,以及一些在整个程序中常用到的结构体,频繁使用的函数说明,定义等等;文件扩张名为,cpp的,是C++中的源文件,也是最常用到的文件,每建立一个工程都要至少...

相似回答