C++头文件里声明了变量、类、函数,在.c源文件里还要声明吗?源文件里的每个变量都要在头文件里声明吗?

C++头文件里声明了变量、类、函数,在.c源文件里还要声明吗?源文件里的每个变量、类、函数都要在头文件里声明吗?

声明并不是定义,对于全局的或公共的变量,都会在一个头文件里用extern关键字声明变量,表明这个变量是个外部变量,已经再某一个.cpp文件中定义了.然后在一个源文件中可以定义该变量,这样能达到共享的效果.
对于一些函数可以直接在头文件中定义,比如类的内联函数 ,可以直接在类的声明中定义 。
源文件里的函数和变量,并不一定都要在头文件里声明,可以直接在源文件里声明和定义 ,但这样那些变量和函数的作用域就是文件作用域,就是只能在该源文件中使用 。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-20
#include <xxx.h>这一行你可以看成是把xxx.h文件里的内容完全copy在这个位置
头文件里的东西相当于是全写在源文件的开头了,自然不用再声明。
一般头文件里放一些比较通用的宏,类和函数,声明只要一次就可以了 ,不然会冲突报错追问

源文件里的每个变量、类、函数都要在头文件里声明吗?什么样的变量、类、函数可以在源文件里声明而不用再头文件里声明?

追答

从本质上说头文件和源文件没有区别
我们为了使用方便,把一些控制性的或者常用的内容放在头文件里,方便修改和重复使用

本回答被提问者和网友采纳

c++里头文件声明变量源文件赋值问题?
在C++中,通常将头文件用于声明类、函数、变量等,而将定义放在源文件中实现。这是因为在C++中,头文件通常包含声明信息而不是定义信息。声明告诉编译器一个名称的类型和标识符,并告诉它在何处可以找到定义,以便在编译期间使用该名称。定义实际上是创建名称的实例,并将其分配给一些内存地址。如果您在...

c++头文件和原文件
.h是头文件,用来定义函数,结构,和一些变量的申明,没有主函数main。.cpp是源文件,就是我们一般编译执行的那个,源文件中可以调用头文件定义的函数和变量,必须要有主函数main。如在text.h中定义一个变量int i[10];在之后的任意的一个源文件中引用这个头文件的话(include"text.h")则i就是已经...

求教c++里每个变量,都要在h文件里面声明吗?
1、在头文件的类外面定义。这样定义的变量可认为是对外公开的全局变量定义,因为一般别人引用你的头文件,是可以直接看到的,所以是公开的,在类外面就是全局的,只要你包含这个头文件,就会分配空间。2、在头文件类里面定义。这是公开非全局。生命周期和类对象生命周期一致。3、cpp函数外定义。这是非公...

C\/C++头文件以及避免头文件包含造成的重定义方法
C\/C++编程中,头文件是关键元素,它们包含了函数声明、宏定义等,用于多个源文件共享。标准做法是将常量、宏、全局变量和函数原型写在头文件中,通过预处理指令#include引用。头文件包含时要特别注意,避免多次引用导致的重复内容,通常采用条件编译(如#ifndef...#define...#endif结构)来包裹整个头文件...

C++头文件里声明的变量如何能让所有.cpp文件都可以对它进行修改值,而且...
如果要在C++程序中引用C程序中的变量,要在extern后加"C"。在appmodul.cpp(MFC核心头文件)中有一个例子extern "C" int WINAPI,引用了crtexe.c里的WINAPI变量。常用的 extern "C" 是把导出函数声明为C编译。由于C++编译器在编译的时候会造成其函数名的该变,在其他应用程序中导致函数不可调用,而...

C++中头文件(.h)和源文件(.cpp)都应该写些什么
源文件 (.cpp):实现与链接 源文件 (.cpp) 则是实现头文件中声明的类、函数和常量的具体代码。编写源文件时,通常会在文件开头通过 `#include` 指令引入头文件,以确保代码的完整性。源文件负责提供函数的具体实现,以及变量的定义和初始化。每个源文件都会被编译生成 .obj 文件,而所有 .obj 文件...

C++中头文件(.h)和源文件(.cpp)都应该写些什么
而用C++编写比较大型的项目时,文件的分割管理确实确实是非常必要的 。下面就非常简洁明了地谈谈头文件(.h)和源文件(.cpp)应该怎么写。 头文件(.h): 写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。 在写头文件时需要注意,在开头和结尾...

c++程序哪些应该放在头文件里面,哪些应该放在源文件里面?
在编程中,头文件与源文件的划分取决于项目的关注点和coding style。首先,从编译器的角度考虑,头文件中的 static 变量等需要在源文件中定义,且头文件中若有直接定义的函数记得标记为 inline,以避免多个 translation unit 引用时产生的 multiple definitions 错误。从软件库开发的角度,头文件应仅包含 ...

C++自己写的头文件无法用cout
楼上解释的基本没问题,但我这里想强调一点,你是否把类的定义都写在了头文件?如果是,非常不推荐。头文件尽量只有类和函数、全局变量的声明,而其定义应该定义在.cpp\/.c源文件里,这样头文件就不必加#include<iostream>之类的东东。之所以推荐声明与定义分离,是保证万一你写的类被多个文件使用,则会...

C++中对自定义函数的声明,放main内还是外,在含类的程序中,貌似只能在...
一般放在函数外,调用之前。放在哪跟有类没类没有直接联系。实践中一般将函数声明、类的定义放在头文件中。而定义放在单独的源文件(.cpp)。如果有哪个源文件中用到了头文件中声明的函数或类,只需#include “***.h”将头文件包含进来。

相似回答