.C源文件可以调用.c源文件作为头文件吗?可否有简单的例程咧 [问题点数:20分,结帖人weixin_43092766]

Bbs1
本版专家分:0
结帖率 66.67%
Bbs6
本版专家分:8322
Bbs1
本版专家分:0
Bbs2
本版专家分:185
c源文件中要包含自己的头文件
引言:             我们经常在c工程中发现,<em>源文件</em>中要包含自己的<em>头文件</em>。一直以来,都不知道为什么这样做。现在,我知道了。 以前的认知:  我认为,.c文件没有必要包含自己的.h文件。.h文件包含.c文件中定义的函数和全局变量的声明,.h文件就是.c文件提供的对外接口文件。既然.h文件就是.c文件提供的对外接口文件,那么.c文件就没必要包含自己的.h文件了(.h文件是对外提供用
C语言里 头文件源文件 作用是什么?
在C语言家族程序中,<em>头文件</em>被大量使用。一般而言,每个C++/C程序通常由<em>头文件</em>(header files)和定义文件(definition files)组成。<em>头文件</em><em>作为</em>一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。而且 .c就是你写的程序文件。   一般在一个应用开发体系中,功能
C语言中,头文件的作用,头文件源文件的关系(转)
<em>简单</em>的说其实要理解C文件与<em>头文件</em>(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段  2.词法与语法分析阶段  3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还<em>可以</em>用ob
可否把模板的头文件源文件分开编译
    严格意义上说,不行,不过<em>可以</em>通过巧妙的手段解决这问题。先说为啥不行:引用这篇文章的例子   为什么C++编译器不能支持对模板的分离式编译,//-------------test.h----------------// template&amp;lt;class T&amp;gt; class A { public: void f(); // 这里只是个声明 }; //--------------...
C++中一个头文件可以对应多个源文件
// one *.h file can correspond two or more *.cpp files // or a class definition can distribute in more than one *.cpp files// part.h #ifndef PART_H #define PART_H#include class A { public:
c/c++中头文件源文件的关系
.h为<em>头文件</em>,.c/.cpp为<em>源文件</em> 首先: .h中一般放的是同名.c文件中定义的变量、数组、函数的声明,需要让.c外部使用的声明,一般只有声名,而具体的实现放在<em>源文件</em>中。 要将a.cpp和a.h对应起来,就必须在a.cpp中写上#include"a.h",这样编译器才会把a.h和a.cpp两个文件绑定在一起。 其次: 要了解细节的东西,我们先要清楚译器的工作过程,一般说来编译器
C语言代码的头文件源文件有什么区别?
<em>头文件</em>和<em>源文件</em>在本质上没有任何区别。 后缀为  .h 的文件是<em>头文件</em>,内含函数声明、宏定义、结构体定义等内容。 后缀为  .c 的文件是<em>源文件</em>,内含函数实现,变量定义等内容。而且是什么后缀也没有关系,只不过编译器会默认对某些后缀的文件采取某些动作。这样分开写成两个文件是一个良好的编程风格。 <em>简单</em>的说其实要理解C文件与<em>头文件</em>(即.h)有什么不同之处,...
关于定义一个结构体可以被其他的源文件使用
第一步:首先建立一个<em>头文件</em>  (在KEIL中,或许一个<em>头文件</em>中有其他的定义等,为防止该在包含<em>头文件</em>时,编译产生了重复定义的现象,所以我在这专门定义了一个<em>头文件</em>用来存放自定义的结构体) 第二步:在这个<em>头文件</em>中定义结构体 第三步:在其他使用到的<em>源文件</em>中包含该<em>头文件</em>  在含有main的<em>源文件</em>中,若要使用PM_Sensor_Data这个结构体变量,声明如下:
如何在c语言中源文件调用另一个源文件的函数
在<em>源文件</em>A1.c中<em>调用</em>A2.c 中的函数 有两种方法:   1.在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就<em>可以</em>了,例如: 在A2.c中:有函数void A2(){…}; 在A1.c中:在文件前头增加一行:void A2();就<em>可以</em>了      2.把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include “A2
C语言头文件源文件与本地文件的区别
<em>源文件</em>&lt;&gt;与本地文件“ ” 的区别 系统自带的<em>头文件</em>用 &lt; &gt; 表示,这样编译器会在系统文件目录下查找。 用户自定义<em>头文件</em>用 “ ” 表示,编译器首先会在用户目录下查找,然后再去系统文件目录下查找<em>头文件</em>包含顺序问题 1 尽量将系统<em>头文件</em>写在自定义<em>头文件</em>的前面 2 在用户自定义<em>头文件</em>中 将使用到的声明的<em>头文件</em>写在前面,否则在<em>调用</em>的时候可能会出现在未声明的问题从而产生错误。
包含同一头文件的多个源文件,声明并定义相同类,结构体的有趣问题
一个<em>头文件</em>,声明的函数、类型、结构体等,只能于一个<em>源文件</em>实现。 包含同一个<em>头文件</em>的多个<em>源文件</em>,不能定义相同名称的全局变量,即便类型不同也不<em>可以</em>。(但常量却<em>可以</em>)。 包含同一个<em>头文件</em>的多个源头件,<em>可以</em>分别在<em>源文件</em>中声明并定义类型、结构体,但不能申明并定义函数。但这却会导致一个有趣的问题,请看实例分析。 A.h 声明了3个函数,分别在B.cpp C.cpp D.cpp 中实现 /* *
C语言多个源文件编译成一个程序
C语言的基本组成单元是函数,各个函数之间<em>可以</em>相互引用。在学到静态函数有时又将为内部函数和外部函数,即分别用static和extern说明的函数时,有不少人感到很迷惑:“外部”和“内部”到底是怎么一回事呢? 一般来说,我们编制的C语言源程序都是放在一个扩展名为.C的文件中,这对一个较<em>简单</em>的程序是合适的,但对于大型项目就不合适了,其一,大项目往往由多人合作完成,大家都来操作同一个文件极易出错;其二,大
c/c++ _c语言模块_头文件_源文件_头文件搜索路径
<em>头文件</em> 为什么会有<em>头文件</em>; 怎么制作<em>头文件</em>; 我们的编译器是怎么找到<em>头文件</em>; 模块:有组织有结构的来给代码划分模块,处理同一个功能代码,我们放到一个模块里面,.c文件 假设我们新增一个数学函数<em>源文件</em>,并且添加到编辑器 代码模块的原则: 如果这个函数接口,<em>可以</em>公开给外部使用,那么就要把这个函数的声明编写到<em>头文件</em> 如果这个函数接口,不给外
C语言:解决多个C文件包含同一头文件引起的文件重复包含问题
解决多个C文件包含同一<em>头文件</em>引起的文件重复包含问题,并给出全局变量如何定义和声明的方法. 解决方法: 1. 定义公共文件: global.c 和global.h 其中, global.c文件中: #include &quot;global.h&quot; //定义全局变量 int global_num1,global_num2; //定义函数 int func(int input1 ,int inp...
C++变量/函数 声明与定义 源文件头文件
C++有分离式编译,<em>可以</em>将一个程序分为多个<em>源文件</em>独立编译,再通过链接合并到一起。.h文件的作用只是在<em>源文件</em>中include,不会单独被编译。 如果在不同<em>源文件</em>间需要共享全局变量,这时就需要extern发挥作用。extern用于声明,声明<em>可以</em>声明多次,定义只能有一次。因为<em>头文件</em>可能会被多个<em>源文件</em>包含,所以全局变量的定义不可放在<em>头文件</em>中,否则会导致全局变量多重定义。 看下面的例子: //1.cp...
为什么C语言会有头文件
前段时间一个刚转到C语言的同事问我,为什么C会多一个<em>头文件</em>,而不是像Java和Python那样所有的代码都在<em>源文件</em>中。我当时回答的是C是静态语言很多东西都是需要事先定义的,所以按照惯例我们是将所有的定义都放在<em>头文件</em>中的。事后我再仔细想想,这个答案并不不能很好的说明这个问题。所以我在这将关于这个问题的相关内容写下来,希望给大家一点提示,也算是一个总结 include语句的本质 要回答这个...
C++ 关于头文件源文件 编译和链接问题
 所有的<em>头文件</em>,不会被编译, #include XXX.h的意义是    把某个<em>头文件</em>的内容全部都搬进<em>源文件</em>里面。 <em>头文件</em>里面不能 单独声明 一个  int a; char b; 这种变量。 因为在#include 后,会有多个定义。    定义永远只能有一个,但是声明<em>可以</em>有很多个。 所以在链接后,如果多个cpp文件#include后,会有多个定义。(这种叫外部链接)  链接的时候不知道以哪个链接...
C++中的头文件源文件:如何写头文件
C++中的<em>头文件</em>和<em>源文件</em> 一、C++编译模式 通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++<em>源文件</em>,里面放的都是C++的源代码;而.h文件则被称作C++<em>头文件</em>,里面放的也是C++的源代码。 C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,<em>可以</em>分成不同的部分分别放在不同的.cpp文件
C\C++ 头文件源文件注释
C语言编程规范-注释   规则: 1:一般情况下,源程序有效注释量必须在20%以上。 说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 2:说明性文件(如<em>头文件</em>.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改
c++ 和c语言库文件区别以及源文件
c语言   库文件 例如        stdio.h    标准c库文件           一般<em>源文件</em>为.c c++  库文件     iostream  然并没有 h     <em>源文件</em>    为cpp 如果想在 c++编程用c标准库  <em>可以</em>用 cstdio   == stdio      然而  还看到hpp    .cpp的实现代码混入.h<em>头文件</em>当中,定义与实现都包含在
C语言一个源文件如何调用另一个源文件里的函数
转载请注明源地址:http://write.blog.csdn.net/postedit/77096757
vs2010不同源文件调用
由于考虑到大型工程的项目的维护,会使得
分开编写头文件源文件
创建一个新的项目右击——&amp;gt;属性单击常规——配置类型的默认将其设置为单击应用——&amp;gt;确定Ctrl+F7进行代码编译 + F7会生成
DSP 28035头文件例程
ti 公司的dsp28035的<em>头文件</em>和<em>例程</em>
把声明(如函数原型声明)放在头文件,并在需要时用#include指令把他们包含在源文件中,这么做有什么好处
声明只需要编写一次,这样以后维护和修改时更加容易,同样,声明只编写一次消除了在多份拷贝中出现写法不一致的机会
C语言头文件组织与包含原则(函数指针和结构体的前项声明)
http://jingpin.jikexueyuan.com/article/38309.html 语言<em>头文件</em>组织与包含原则 作者: clover_toeic 发布时间:2015-07-07 16:38:58 说明      本文假定读者已具备基本的C编译知识。      如非特殊说明,文中“<em>源文件</em>”指*.c文件,“<em>头文件</em>”指
c++多个源文件共用一个全局变量(extern 的用法)(
 本文转自:http://blog.sina.com.cn/s/blog_74a459380101rjh4.html 例子: <em>头文件</em>:state.h    <em>源文件</em>:state.cpp         其它<em>源文件</em>:t1.cpp   t2.cpp  t3.cpp,  这些<em>源文件</em>都包含<em>头文件</em>state.h。 需要定义一个全局变量供这些<em>源文件</em>中使用:方法如下 1、在 state.h
关于C和C++不同源文件中重名变量的问题
在CSAPP中看到的程序链接规则: 函数名, 有初值的全局变量, 编译器会把它<em>作为</em>"强"符号, 而无初值的全局变量, 编译器会把它<em>作为</em>"弱"符号. 链接的时候, 如果不同文件中出现同名的"强"符号, 链接失败. 如果同名的有一个"强"符号, 多个弱符号, 链接"强"符号, 丢弃"弱"符号. 如果只有多个同名的"弱"符号, 则随机选一个链入可执行文件, 这也是有道理的, 因
c++高级---C++中的头文件源文件(链接时怎么对应、头文件中能定义什么)
转自:http://www.cnblogs.com/lidabo/archive/2012/04/17/2454568.html 一、C++编译模式 通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++<em>源文件</em>,里面放的都是C++的源代码;而.h文件则被称作C++<em>头文件</em>,里面放的也是C++的源代码。 C+ +语言支持“分别编译”(separate
C语言(Head First C)-5_2:使用多个源文件:共享函数和共享变量
5_2 使用多个<em>源文件</em>: 链接多个<em>源文件</em>,共享函数、共享变量;   保留字/关键字:  C语言是一种很小的语言,所有的保留字和关键字如下:  auto   if      break  int    case    long  char   register    continue  return default short  do
C++ (vs2012) 初学头文件源文件
直接上图 最开始始终不明白<em>头文件</em>和<em>源文件</em>的区别 今天做了一个多态的例子才搞明白这一点 <em>头文件</em>里面存放的是函数定义,<em>源文件</em>里放的是函数具体实现 当然如果你的类不需要让别的类引用,定义就<em>可以</em>不放在<em>头文件</em>里,直接放在cpp里即可 代码:Animal.h class Animal { public: Animal(); ~Animal();
彻底搞明白win32编程 .h头文件和.cpp源文件关系
一.想把项目的全局参数都放在一个文件里,好方便对初始值修改。 步骤: 1.新建一个.h<em>头文件</em>,只声明参数为全局变量(注意是声明!!!)。 2.一定要extern,这才是声明全局变量 而且 一定不能赋初值 extern int a; 根据C++标准的规定,一个变量声明必须同时满足两个条件,否则就是定义: (1)声明必须使用extern关键字; (2)不能给变量赋初值; <em>头文件</em>请...
关于C语言多个源文件编译成一个程序
第一次用CSDN的博客,慕名而来,决定好好经营下自己的技术博客。今天看《C和指针》中第二章编程训练的第一题,就是关于C语言多个<em>源文件</em>编译成一个程序的问题。之前自己一直都不太搞得懂这个,不过之前写的程序都是<em>简单</em>的,一个<em>源文件</em>就能搞定的那种,所以也一直懒了没有去学怎么,心里隐隐的对学习心的东西感觉到恐惧。今天自己搬弄了一个下午,各种错误,要崩溃了。吃完饭,又继续投入到这其中当去。这次学聪明了,Google了下,然后学着对比着来修改自己的代码。这里就举自己写的一个很<em>简单</em>的范例来解说。题目是,一共有三个<em>源文件</em>,第一
头文件源文件在不同目录情况下 Makefile自动推导依赖关系的实现
参考 跟我一起写Makefile http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225&extra=&authorid=10610714&page=1 这两天
头文件、库文件、静态库、动态库
<em>头文件</em>
头文件之前包含其他头文件与在源文件前包含头文件有什么区别 #include“”
相同点: <em>头文件</em>与源代码都是<em>源文件</em>,都用纯文本文件存储,都需要遵照C/C++语言规范来写,都<em>可以</em>使用类型定义和常、变量定义,都<em>可以</em>包含函数的声明和实现,都能包含宏定义,都使用相同的<em>调用</em>规范。 不同点: C/C++的编译器规定源代码文件必须包含函数入口,即main函数,或者winmain函数。而<em>头文件</em>不得包含函数入口,也就是说,<em>头文件</em>不<em>可以</em>单独编译成一个程序,仅仅包含程序片断或者仅仅定
C语言中头文件是如何包含的?也说重定义
C语言中<em>头文件</em>是如何包含的? 也说重定义 随着代码越写越长,一个<em>源文件</em>的体制越来越臃肿。于是提倡将代码写到不同的多个<em>源文件</em>中去。将代码写到多个<em>源文件</em>中去就会遇到各个<em>源文件</em>中函数与变量的<em>调用</em>规则问题。 通常人们习惯性的把宏定义、结构体、联合体、枚举、外部变量和外部函数声明等写入到<em>头文件</em>.h中去,而把函数的声明、变量定义等写入到.c文件中去。当某一.c<em>源文件</em>需要<em>调用</em>某一函数的时候,只要将包含这个
STM32重要源文件头文件说明
对于STM32F4xx_StdPeriph_Driver,其重要<em>源文件</em>为: stm32f4xx_ppp.h:外设<em>头文件</em>。这里的ppp只是一个代码,在实际上是具体的外设名字,如ADC,DMA等。在实际使用时根据所需的外设选择性移植。                       在STM32F4xx_StdPeriph_Driver\inc中 stm32f4xx_ppp.c:外设<em>源文件</em>。这...
头文件中不要去定义函数
如果现在在1.h文件中定义一个函数: #include using namespace std; void fun1() {    cout } 在<em>源文件</em>2.cpp中这样使用: #include "1.h" //extern void fun1(); //有没有此申明都不报错 void fun2() {     fun1(); } 在<em>源文件</em>3
C++中的头文件(.h)和源文件(.cc)
<em>头文件</em>(,h): 写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体实现。 在写<em>头文件</em>时需要注意,在开头和结尾处必须按照如下样式加上预编译语句: #ifndef HELLO_H #define HELLO_H //Your codes #endif这样做是为了防止重复编译,不这样做就有可能出错。至于HELLO_H这个名字实际上是无所谓的,叫什
Qt含各种头文件源文件的方法
QT项目中可能有很多的文件夹需要包含进来,有的文件夹是一个独立的功能模块,这个项目可能需要而别的项目可能不需要,怎样将其包含进来呢。这里有两种方法。
VS2015建立一个完整的c++工程:头文件.h 源文件.cpp,自动生成类
打开VS2015 ,新建VS win32工程,前面步骤很<em>简单</em>,不再阐述 下面直接开始: 新建一个VC++ win32的程序, 在<em>源文件</em>加下添加.cpp文件,一般放main函数 #include &amp;lt;iostream&amp;gt; #include &amp;lt;locale&amp;gt; #include &quot;human.h&quot; using namespace std; int main() {  H...
codeblocks:使用多个头文件源文件会遇到的问题
1.无法编译文件?解决方法:1.在添加时记得勾上debug和release2.若已经添加,则在相应文件点击右键,点击property在构建那一栏里勾上debug和release2.复制项目的相应文件,并相应添加了,并且也勾上debug和release,好像有莫名奇妙的错误可能解答:可能把一些之前从项目移除的文件也移动了(如果是打开文件手动复制的话),推荐以后还是点击相应的<em>头文件</em>再另存为。3.复制了,
C++源文件包含C源文件(C++中如何使用C)
如下代码: /*C语言<em>头文件</em>:Max.h*/ #ifndef _MAX_H_ #define _MAX_H_ int Max(int nA,int nB) #endif /*C语言实现文件:Max.c*/ #include "Max.h" int Max(int nA,int nB) {   return((nA-nB)?(nA):(nB)); } /*C++语言<em>调用</em>文件*/ #i
C++头文件源文件的编译链接
一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++<em>源文件</em>,里面放的都是C++的源代码;而.h文件则被称作C++<em>头文件</em>,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,<em>可以</em>分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是相对独立的,...
C头文件组织与包含原则
说明      本文假定读者已具备基本的C编译知识。      如非特殊说明,文中“<em>源文件</em>”指*.c文件,“<em>头文件</em>”指*.h文件,“引用”指包含<em>头文件</em>。   一、<em>头文件</em>作用      C语言里,每个<em>源文件</em>是一个模块,<em>头文件</em>为使用该模块的用户提供接口。接口指一个功能模块暴露给其他模块用以访问具体功能的方法。使用<em>源文件</em>实现模块的功能,使用<em>头文件</em>暴露单元的接口。用户只需包含
linux下实现g++编译链接c++源文件头文件
C++编译多个文件 makefile (2012-07-07 21:18:05) 转载▼     逐步编译: g++ -c APCluster.cppAPCluster.h //生成APCluster.o 中间文件 g++ -c example.cppAPCluster.h  //生成example.o中间文件 g++ -o main APC
多个.c文件和头文件
在实际的开发项目当中 ,我们通常需要自己编写自己的<em>头文件</em>。下面以实现add为例子来写一个多文件 <em>头文件</em>: 结构体初始化函数: add业务函数: 主业务函数: main函数: 所有的.c和<em>头文件</em>都写好之后,gcc编译生成二进制可执行文件haha ./haha执行程序 gcc main.c func1.c func2.c func3.c -o hah
c++调用其他源文件函数 Error Link2019
在c++中,主函数<em>调用</em>另一个cpp文件中的funcm函数,一种方法为,在自建<em>头文件</em>中声明该函数,并且在描述funcm函数实体的cpp文件中引用<em>头文件</em>。具体示例如下: //主函数<em>源文件</em>SummerSchool.cpp #include &quot;stdafx.h&quot; #include&amp;lt;iostream&amp;gt; #include&quot;Account.h&quot; #include&amp;lt;Windows.h...
c语言数组、结构、源文件头文件
在初步接触c语言的时候我们往往会有以下问题:c语言的结构(如数组、结构)是什么时候分配的地址空间?数组a[]中的a到底代表什么意思? 如何为结构分配空间?结构如何声明,如何初始化?如何表示结构?指针还是结构本身?c中.h文件是什么类型的文件? 一、数组和指针 1、数组的声明方式 为了声明数组,需要说明数组元素的类型和数量,例如 int a[10]; 此时已经给他分配空间了!;指针没有
CCS6.2版本Dsp28335工程(包含基本模块的源文件头文件)
自己从ccs3.3版本移植到ccs6.2版本的工程。导入到ccs6.0以上版本时,选择import 3.3pro即可。可能需要稍微改动一下工程属性。给刚刚接触dsp28335的朋友们吧。下载器使用的是xds100v2,工程里<em>可以</em>修改
c++:一个程序多个源/头文件
1、一个程序,一个<em>源文件</em>的做法#include&amp;lt;iostream&amp;gt; #include&amp;lt;cstring&amp;gt; using namespace std; class Student { private: char Name[20]; //学生姓名 double Chinese; //语文成绩 double Math; ...
头文件源文件工程构建CMakeLists写法
1.最<em>简单</em>的CMakeLists.txt如下,只有一个<em>源文件</em>: cmake_minimum_required (VERSION 2.6) #版本要求 project (Tutorial) #工程名称 add_executable(Tutorial tutorial.cpp) #制定生成目标 2.如果有两个以上<em>源文件</em>,并在同级目录下: cmak...
linux gcc编译多个源文件的方法
一. 常用编译命令选项 假设源程序文件名为test.c。 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。 2. 选项 -o 用法:#gcc test.c -o test 作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。
头文件源文件 及extern的使用
<em>头文件</em>与<em>源文件</em>的作用 1. 编译器的工作过程 <em>简单</em>的说其实要理解C文件与<em>头文件</em>(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成...
C++中为什么要头文件源文件分开写呢?
对c&c++程序来说,基本上来说都是要把<em>源文件</em>和<em>头文件</em>分别编写。一般都是代表一个基本功能的<em>源文件</em>引用相应的<em>头文件</em>。 一个 相关功能的模块可能有若干对<em>源文件</em>和<em>头文件</em>组成。这是基于组件编程的核心。 在我看来,他的好处是巨大的,是java不可比拟的,也是不可复制的: c语言中<em>头文件</em>中一般定义了函数的声明、结构体的定义、宏定义。(常量和全局变量最好放到<em>源文件</em>中) 1)
C语言程序设计 学习笔记 12.3 多个源代码文件、头文件、声明
我们经常在做“分而治之”的事情(多个.c文件): 1.main()里的代码太长了适合分成几个函数 2.一个源代码文件太长了适合分成几个文件 3.两个独立的源代码文件不能编译成可执行的程序 对于(1),我们<em>可以</em>举以下例子: 有个主函数main.c,有另外一个函数max.c(求最大值) #include&amp;lt;stdio.h&amp;gt; int max(int a,int b); int main(){ ...
数据结构-栈的头文件编写以及调用(多么痛的领悟!)
最近学数据结构
为什么类的定义应当写在头文件中,从而被多个源文件包含?
比如myclass.h定义了一个类myclass(只定义类,不定义成员函数),file1.cpp里#include "myclass.h",编译得到file1.obj;file2.cpp里也#include "myclass.h",编译得到file2.obj;那么把file1.obj和file2.obj(和运行库)连接起来生成可执行文件的时候,为什么不会有冲突呢?2个文件都包含了myclass类的
c++ 一个头文件引用另一个头文件的类
c++ 一个<em>头文件</em>引用另一个<em>头文件</em>的类 ----C++<em>头文件</em>相互引用,一个#include,另一个class C C++<em>头文件</em>相互#include时最好是: (1)在"CA.h"中 #include "CB.h". (2)在"CB.h"中用类的前向声明: class CA; (3)最好加上<em>头文件</em>卫士( #ifndef ***   #define ***  #endif) 示例如下:
java调用C/C++不能打开源文件jni.h的问题
在java<em>调用</em>C/C++中,需要用到jni。 Java Nativie Interface(JNI,中文名称Java本地接口)标准时Java平台的一部分,它允许Java代码和其他语言写得代码进行交互。JNI是本地编程接口,它使得Java虚拟机(VM)内部运行的Java代码能够用其他编程语言(如C、C++和汇编语言)编写的应用程序和库进行交互操作。JNI的主要用途是为了对硬件进行访问以及追求高效率
变量与类的 声明和 定义 在头文件中的使用
什么是变量?变量或者叫对象,是一个有具名的、<em>可以</em>供程序操作的存储空间。这里具名是指变量是有名字的,可供操作是指能进行加减乘除或者输入输出等操作,存储空间则是指有一块属于它的内存空间。 为了便于说明,标题和后面的内容将对象分为两种。对于内置的,文章称<em>作为</em>变量,对于自定义的,称之为对象。 第一个问题:在C++中,什么是定义,什么是声明? ①定义:用于为变量分配存储空间,还可为变量指定
Makefile中如何根据源文件自动生成其所需要的头文件
前言 Makefile自动生成<em>头文件</em>依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程。 Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成<em>头文件</em>依赖。 CC = gcc CFLAGS = -Wall -O INCLUDEFLAGS = LDFLAGS = OBJS = seq.o TARGETS = t
关于extern以及源文件头文件的应用
最近在纠结这个问题,全局变量的声明到底应该在<em>源文件</em>还是<em>头文件</em>中,其实有两种方法: 缘由:因为 int a;表示的是一个定义,而extern int a;却是一个声明 方法一:在a.h中表示全局变量的声明:extern int a;               在a.c中进行全局变量的定义:1)exetrn int a = 5;   会跳出警告(   a.c:3:12: warning: 'a
头文件与库文件的区别
一、<em>头文件</em>在编程过程中,程序代码往往被拆成很多部分,每部分放在一个独立的<em>源文件</em>中,而不是将所有的代码放在一个<em>源文件</em>中。考虑一个<em>简单</em>的小例子:程序中有两个函数main()和abc()。main()函数位于main.cpp,abc()函数位于abc.cpp,main()函数中<em>调用</em>abc()函数。在编译阶段,由于编译是对单个文件进行编译,所以编译main.cpp时,编译器不知道是否存在abc()函数以及a
C语言之头文件预定义宏的作用
一直以为对C很了解,不想今天犯了个错误: 在C<em>头文件</em>中,预处理宏定义的作用是防止(<em>头文件</em>)错误的包含关系。具体来说,比如有两个<em>头文件</em>a.h,b.h,其中b.h又包含a.h。但若在另一个文件中同时包含这两个<em>头文件</em>的话(理应只包含<em>头文件</em>b.h,但用户可能以为它们二者是不相关的),若没有在a.h中作预处理宏定义的话,a.h文件中定义的变量,函数将会出现“重复定义”的错误。 举例如下:
linux下c++编程环境搭建,运行过程以及调试,内含C++头文件源文件编译过程链接
安装g++环境 安装两个RPM包即可搞定 [root@localhost Desktop]# rpm -ivh /home/weiwei/Desktop/libstdc++-devel-4.4.5-6.el6.i686.rpm  [root@localhost Desktop]# rpm -ivh /home/weiwei/Desktop/gcc-c++-4.4.5-6.el6.i686.
C++源代码文件的扩展名
C++实现 源代码文件的扩展名 UNIX C、cc、cxx、c GNU C++ C、cc、cxx、cpp、c++ Digital Mars cpp、cxx Borland C++ cpp Watcom cpp Microsoft Visual C++ cpp、cxx、cc Freestyle Code Warrio
C语言头文件定义全局变量问题
正确的作法是在c<em>源文件</em>中定义一个全局变量,在<em>头文件</em>中加入全局变量的声明,在外部文件<em>调用</em>的时候,包含其<em>头文件</em>,加入全局变量的声明(不加也是<em>可以</em>的,最好加上)。 //1.c int a; //1.h extern int  a; //test.c #include "1.h" extern int a; int 
我第一次把一个程序分成多个源文件, 我不知道该把什么放到.c 文件, 把什么放到.h 文件。(“.h” 到底是什么意思?)
我第一次把一个程序分成多个<em>源文件</em>, 我不知道该把什么放到.c 文件, 把什么放到.h 文件。(“.h” 到底是什么意思?) <em>作为</em>一般规则, 你应该把这些东西放入头(.h) 文件中:•  宏定义(预处理#defines)•  结构、联合和枚举声明•  typedef 声明•  外部函数声明•  全局变量声明 当声明或定义需要在多个文件中共享时, 尤其需要把它们放入<em>头文件</em>中。特别是, 永远不要把外部函数
c语言笔记--头文件源文件的区别
c语言笔记--<em>头文件</em>和<em>源文件</em>的区别  首先,我们<em>可以</em>将所有东西都放在一个.cpp文件内. 然后编译器就将这个.cpp编译成.obj,obj是什么东西? 就是编译单元了.一个程序,<em>可以</em>由一个编译单元组成, 也<em>可以</em>有多个编译单元组成. 如果你不想让你的源代码变得很难阅读的话, 就请使用多个编译单元吧.(一个函数不能放到两个编译单元里面,但两个以上 就<em>可以</em>分别放在一个单元,也就是cpp里面)
C++引用/枚举/typedef/头文件/预编译器/自定义头文件
//引用是别名 //int &refVal2;//引用类型定义必须初始化 //int &refVal3 = 10;//引用初始化必须是对象 //当初始化后,只要改引用存在,他就保持绑定到初始化时指向的对象。不可能将引用绑定到另一个对象。 //要理解重要概念是引用只是对象的另一个名字。 //初始化是指明引用指向哪个对象的唯一方法。//定义多个引用 //<em>可以</em>在一个类型定义行中定义多个引用。必
能不能在头文件中定义全局变量?
首先,这是一篇科普文,所以 比较杂,我尽量写清楚一些。 1、ANSI C标准是什么?GNU又是什么?ld是什么? ANSI C是C语言的标准规范,是国际标准化组织制定的国际标准。 虽然 ANSI C规范了C语言的实现,但是在实际情况中,各家C语言提供商都会根据平台的不同情况对ANSI C进行一定的扩展。因此<em>可以</em>将现实中C语言实现看作是ANSI C的一个超集。比较有代表
rpc (网络通信例子)c语言(亲自测试过可以使用)
rpc (网络通信例子)c语言(亲自测试过<em>可以</em>使用)
解决VS2015中无法加载”graphics.h”头文件的问题
PS:其实VS的各种版本,我们只需要下载好对应的lib和include文件夹就<em>可以</em>,一下的操作方式都是相同的首先需要从这个百度网盘地址链接: 点击该链接,密码为wi9b 密码: wi9b然后下载下面两个文件:下载完后打开下载好的Inlcude文件夹,将里面的两个文件进行复制,然后粘贴到如上图所示的文件夹中,继续打开下载好的lib2015文件夹,将里面的东西全部选中复制,粘贴到如上图所示的文件夹,因...
C语言中多个源文件编译
在C程序语言中,为了避免一个文件中的行数太多,导致拍错困难 <em>可以</em>分几个<em>源文件</em>来编写 比如说,一个函数一个<em>源文件</em> 如下: cc main.c  glefc.c strindex.c cc的过程是分别将main.c  glefc.c strindex.c编译成main.o  glefc.o strindex.o 然后再将这三个.o文件加载到一起,合成a.out 如果中间main.
vs中资源文件和外部依赖项是什么意思?
外部依赖项:程序中包含的<em>头文件</em>中所用到的<em>头文件</em> 资<em>源文件</em>:除了代码之外所需的其他如图片,菜单,工具栏等
C++中头文件(扩展名.h),源文件(扩展名.CPP)作用和区别
<em>头文件</em>声明,<em>源文件</em>实现。编译的时候只对<em>源文件</em>处理,<em>头文件</em><em>可以</em>很方便的互相引用。一般来说看<em>头文件</em>能知道这个类有哪些变量、函数。函数具体实现会在<em>源文件</em>中写。...
【C语言】使用库和手动导入c源文件的区别
之前编写一类功能,封装fun.c fun.h文件放在同一个目录下面,然后在mian.c文件里 include &quot;fun.h&quot;。以为这样就叫做使用库,其实不然。这样的方式仅仅编写了库的源码,而没有生成库文件。什么意思呢? 如果仅编写源码,然后引用。这样只相当于是把源码复制大man.c文件中,把所有代码链接到了一起。实际上效率没有提高。   如果将库的源码生成库文件(有静态库和动态库两种区别),...
STM32开发 -- 添加头文件
其实很<em>简单</em>,设置 target里的 include paths 但是编译还是不对,其原因是应将该<em>头文件</em>包含在其他文件里。
C++中的头文件(.h)和源文件(.cpp)(一)
在C语言中,第一行要写的代码基本上都是 #include&amp;amp;lt;stdio.h&amp;amp;gt; 这其实是一个<em>头文件</em>的声明,意思是在主文件(main.c)中需要<em>调用</em>在这个<em>头文件</em>中声明的函数,如printf,scanf……同样地,在C++中也需要对<em>头文件</em>进行声明,常见的如: #include&amp;amp;lt;iostream&amp;amp;gt; #include&amp;amp;lt;string&amp;amp;gt; #include&amp;amp;lt;iom
C语言中如何在工程中单独运行某个源文件
最近在研究遗传算法,在网上下了一些关于遗传算法的C语言<em>源文件</em>,放在同一个工程中,打算依次运行每个<em>源文件</em>,测试效果。因为每个<em>源文件</em>中都有main方法,且<em>源文件</em>之间可能会有同名变量或同名函数,所以连接时会报错。我的解决办法是将每个<em>源文件</em>中的main方法改成main1、main2、main3......然后将每个<em>源文件</em>中的全局变量和函数改成静态的,最后新增一个包含main方法的<em>源文件</em>,在该main方法中
头文件的解决方法">vs 与 matlab混合编程不能读取 mat.h 和 "matrix.h" 头文件的解决方法
1.在vs解决方案里面右击选择属性 2. 在C/C++ 的常规目录下 的 附加包含目录中,包含进去matlab的库文件 D:\Program Files\MATLAB\R2010a\extern\include     (当然要看你的matlab具体的安装目录)
DEV-C++自动补充缺省源文件&各种C/C++头文件
一、解决DEV-C++自动补充缺省<em>源文件</em> 工具->编辑器选项-> 这样就<em>可以</em>加<em>头文件</em>了哈 --- 二、C/C++各种<em>头文件</em> C #include     //设定插入点 #include      //字符处理 #include      //定义错误码 #include      //浮点数处理 #include         //对应各种运
Source Insight宏 - 头文件源文件切换
<em>头文件</em>与<em>源文件</em>切换切换的SourceInsight宏,switch_cpp_hpp宏有一定的限制(要求在同一目录下),如源码结构为src、include、test时,include下<em>头文件</em>与src下<em>源文件</em>之间就不能实现切换。SwitchCppAndHpp宏对目录再没有要求,但是同时如果源码中存在多个相同文件名(不同目录下)时,需要用户自己选择相应的文件。
函数声明放在头文件中,函数的定义放在实现文件中,然后在主函数中调用
1.文件的组织结构如下图: 2.Menu.h内容如下:       #ifndef  MENU_H    #define MENU_H    int add(int a,int b);    int minus(int a, int b);    #endif 3.add.cpp内容如下: #include "Menu.h" int add(int a, int b)
头文件重复包含和变量重复定义
在c或c++中,<em>头文件</em>重复包含问题是程序员必须避免的问题,也是很多新手容易犯错的问题。 为什么要避免<em>头文件</em>重复包含呢?        1.我们知道在编译c或c++程序时候,编译器首先要对程序进行预处理,预处理其中一项工作便是将你源程序中#include的<em>头文件</em>完整的展开,如果你有意或无意的多次包含相同的<em>头文件</em>,会导致编译器在后面的编译步骤多次编译该<em>头文件</em>,工程代码量小还好,工程量一大会使整个项
TMS320F28335系列头文件、库文件、cmd等CCS配置文件
TMS320F28335系列CCS配置文件,包括<em>头文件</em>、库文件、cmd文件、gel文件、<em>源文件</em>、示例文件等。
VS2012中C++,#include无法打开源文件
做coco2dx项目 新建<em>头文件</em>,.h结尾的,在AppDelegate.cpp中#include就提示如题错误 看网上的解决方法解决了 比如我的项目下新建的<em>头文件</em>在项目中的路径是src\new.h 找到其在硬盘上的路径,如d:\proj\src\new.h 在VS项目上右键属性 C/C++->常规->附加包含目录中把此路径添加上,路径与路径之间用 ; 隔开 然后就OK
C++中头文件的命名规则
C++中<em>头文件</em>的命名规则,因为C++是从C语言发展而来的,为了与C兼容,C++保留了C语言中的一些规定,其中就包括用.h<em>作为</em>后缀的<em>头文件</em>,比如大家所熟悉的:stdio.h、math.h和string.h等。但后来ANSI/ISO C++建议<em>头文件</em>不带后缀".h"。但为了使原来编写
关于源文件头文件,静态链接库文件,动态链接库文件的的理解
先从<em>源文件</em>和<em>头文件</em>的关系说起,由于是还是初学阶段,只接触了C++语言和windows平台下的编程,所以只讲这两方面的东东, <em>头文件</em>的作用:对函数,变量,和类的声明,其实在<em>头文件</em>也可对一些特殊函数和变量定义,比如<em>可以</em>在<em>头文件</em>中对内联函数和const类型变量定义,由于对类的声明也就是对类的定义,即在对类完成声明后也就等于对类做了定义,所以<em>头文件</em>中对类的声明也就是对类的定义,但是对类的非内联函数成员的...
string.h库文件
/*** *string.h - declarations for string manipulation functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the function declarations for the string * manipulation functions. * [ANSI/System V] * * [Public] * ****/
C| |头文件中为什么只声明不定义,而类定义又可以放在头文件
<em>头文件</em>中为什么只声明不定义,而类定义又<em>可以</em>放在<em>头文件</em>中 首先要了解几个基本概念: 编译单元 对于c语言,每一个.c文件就是一个编译单元。仅仅从编译来说,各个编译单元之间没有联系   未解决符号表 提供了在该编译单元引用,但是定义不在本编译单元的符号的地址(拥有者是编译单元)   导出符号表 提供了本编译单元具有定义,而且<em>可以</em>提供给其他编译单元使用的符号和地址(拥有者是编...
头文件源文件的区别
一、<em>源文件</em>如何根据#include来关联<em>头文件</em> 1,系统自带的<em>头文件</em>用尖括号括起来,这样编译器会在系统文件目录下查找。 #include 2,用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中<em>可以</em>指定和修改库文件查找路径,Unix和Linux中<em>可以</em>通过环境变量来设定)中查找,最后在系统文件中查找。 #include “xxx.h” 二、头文
字符串常量指针在头文件中定义初始化与源文件中定义并初始化的区别
1)在<em>头文件</em>中定义并初始化,那么包含了该<em>头文件</em>的每一个编译单元不仅会为每一个常量指针常量(如const char * const)创建一个独立的拷贝项,而且也会为哪个长长的字符串字面常量创建一个独立的拷贝项,,相当于在每一个编译单元内分别定义和初始化每一个常量时(字符串常量与整型或浮点型常量定义不同,后者在初始化完后不再需要哪个字面常量)。因此每一个编译单元内访问的字符串常量都是它自己单独创建的拷
头文件中无法进行#define宏定义常量
在用MDK5编程时,发现当在<em>头文件</em>中用#define宏定义某常量,然而在<em>源文件</em>中无法引用该<em>头文件</em>的宏定义常量,但是在VS2013中却<em>可以</em>。 同时在网上查找诸多资料后发现是因为编译器的问题,不同的编译器对此规定不同,有的允许在<em>头文件</em>中进行宏定义常量,有的不行(定义后无法使用,编译不报错)。...
关于SpringBoot bean无法注入的问题(与文件包位置有关)
问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架一个module spring-boot-base service和dao一个module server-core 提供系统后台数据管理一个module server-platform-app 给移动端提供rest数据接口一个module server-mobile-api 其中server-platform-app 与
文章热词 Objective-C培训 设计制作学习 ReactJS课程 机器学习教程 交互设计视频教程
相关热词 c++头文件源文件 c++源文件与头文件 c++ 命名空间 头文件和源文件 c++头文件 主函数 源文件 有c基础学习python 人工智能要学习c语言吗
我们是很有底线的