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

Bbs1
本版专家分:0
结帖率 83.33%
Bbs6
本版专家分:8769
Bbs1
本版专家分:0
Bbs2
本版专家分:185
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>的时候就会去找同名<em>头文件</em>,.h文件的内容会被完全替换<em>源文件</em>中的include "xxx.h",然后编译成.s 汇编文件,最后在链接的时候才和外部的符号进行链接。为什么多了一个.h的文件大概是为了方便区分。 那为什么常见自己写的<em>源文件</em>中会看到所写的include "xx.h",引入同名<em>头文件</em>呢,这句话并不
C语言里 头文件源文件 作用是什么?
在C语言家族程序中,<em>头文件</em>被大量使用。一般而言,每个C++/C程序通常由<em>头文件</em>(header files)和定义文件(definition files)组成。<em>头文件</em><em>作为</em>一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。而且 .c就是你写的程序文件。   一般在一个应用开发体系中,功能
头文件与同名源文件的关系
1,系统自带的<em>头文件</em>用尖括号括起来,这样编译器会在系统文件目录下查找。 #include 2,用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中<em>可以</em>指定和修改库文件查找路径,Unix和Linux中<em>可以</em>通过环境变量来设定)中查找,最后在系统文件中查找。 #include “xxx.h” 二、<em>头文件</em>如何来关联<em>源文件</em>     这个问题
C语言代码的头文件源文件有什么区别?
<em>头文件</em>和<em>源文件</em>在本质上没有任何区别。 后缀为  .h 的文件是<em>头文件</em>,内含函数声明、宏定义、结构体定义等内容。 后缀为  .c 的文件是<em>源文件</em>,内含函数实现,变量定义等内容。而且是什么后缀也没有关系,只不过编译器会默认对某些后缀的文件采取某些动作。这样分开写成两个文件是一个良好的编程风格。 <em>简单</em>的说其实要理解C文件与<em>头文件</em>(即.h)有什么不同之处,...
.c与.h与main.c:源文件头文件、主函数文件
<em>简单</em>说,如表格: 参考: 一楼: 其实要理解C文件与<em>头文件</em>有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还<em>可以</em>用objcopy生成纯...
c源文件中要包含自己的头文件
引言:             我们经常在c工程中发现,<em>源文件</em>中要包含自己的<em>头文件</em>。一直以来,都不知道为什么这样做。现在,我知道了。 以前的认知:  我认为,.c文件没有必要包含自己的.h文件。.h文件包含.c文件中定义的函数和全局变量的声明,.h文件就是.c文件提供的对外接口文件。既然.h文件就是.c文件提供的对外接口文件,那么.c文件就没必要包含自己的.h文件了(.h文件是对外提供用
头文件源文件分别在两个文件夹里,编译成库文件
对于小项目,<em>头文件</em>和<em>源文件</em>在一个文件夹里,整个文件布局如下: test #主目录 ---main.cpp ---CMakeLists.txt ---src #子目录 ------functions.cpp ------functions.h ------CMakeLists.txt 这样运行的过程就是用main 函数<em>调用</em>编译好的库文件即可 此时,子目录的CMakeLists.txt写法如下: #...
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> 为什么会有<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...
包含同一头文件的多个源文件,声明并定义相同类,结构体的有趣问题
一个<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语言头文件源文件与本地文件的区别
<em>源文件</em>&lt;&gt;与本地文件“ ” 的区别 系统自带的<em>头文件</em>用 &lt; &gt; 表示,这样编译器会在系统文件目录下查找。 用户自定义<em>头文件</em>用 “ ” 表示,编译器首先会在用户目录下查找,然后再去系统文件目录下查找<em>头文件</em>包含顺序问题 1 尽量将系统<em>头文件</em>写在自定义<em>头文件</em>的前面 2 在用户自定义<em>头文件</em>中 将使用到的声明的<em>头文件</em>写在前面,否则在<em>调用</em>的时候可能会出现在未声明的问题从而产生错误。
如何在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++中的头文件(.h)和源文件(.cc)
<em>头文件</em>(,h): 写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体实现。 在写<em>头文件</em>时需要注意,在开头和结尾处必须按照如下样式加上预编译语句: #ifndef HELLO_H #define HELLO_H //Your codes #endif这样做是为了防止重复编译,不这样做就有可能出错。至于HELLO_H这个名字实际上是无所谓的,叫什
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语言一个源文件如何调用另一个源文件里的函数
转载请注明源地址:http://write.blog.csdn.net/postedit/77096757
C语言多个源文件编译成一个程序
C语言的基本组成单元是函数,各个函数之间<em>可以</em>相互引用。在学到静态函数有时又将为内部函数和外部函数,即分别用static和extern说明的函数时,有不少人感到很迷惑:“外部”和“内部”到底是怎么一回事呢? 一般来说,我们编制的C语言源程序都是放在一个扩展名为.C的文件中,这对一个较<em>简单</em>的程序是合适的,但对于大型项目就不合适了,其一,大项目往往由多人合作完成,大家都来操作同一个文件极易出错;其二,大
分开编写头文件源文件
创建一个新的项目右击——&amp;gt;属性单击常规——配置类型的默认将其设置为单击应用——&amp;gt;确定Ctrl+F7进行代码编译 + F7会生成
关于定义一个结构体可以被其他的源文件使用
第一步:首先建立一个<em>头文件</em>  (在KEIL中,或许一个<em>头文件</em>中有其他的定义等,为防止该在包含<em>头文件</em>时,编译产生了重复定义的现象,所以我在这专门定义了一个<em>头文件</em>用来存放自定义的结构体) 第二步:在这个<em>头文件</em>中定义结构体 第三步:在其他使用到的<em>源文件</em>中包含该<em>头文件</em>  在含有main的<em>源文件</em>中,若要使用PM_Sensor_Data这个结构体变量,声明如下:
C\C++ 头文件源文件注释
C语言编程规范-注释   规则: 1:一般情况下,源程序有效注释量必须在20%以上。 说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 2:说明性文件(如<em>头文件</em>.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改
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语言(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++源文件包含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++:一个程序多个源/头文件
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; ...
使用Vim打造IDE--在头文件源文件中切换
原文地址:http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx转载无风险。 A.vim可是个简约而不<em>简单</em>的插件。 地址:http://www.vim.org/scripts/script.php?script_id=31安装:将a.vim放到~/.vim/plugin文件夹下 用法: :A在
DSP 28035头文件例程
ti 公司的dsp28035的<em>头文件</em>和<em>例程</em>
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>(Header file)和<em>源文件</em>(Source code file)。<em>头文件</em>用于存放对类型定义、函数声明、全局变量声明等实体的声明,<em>作为</em>对外接口;而源程序文件存放类型的实现、函数体、全局变量定义. C++的源代码文件分为两类:<em>头文件</em>(Header file)和<em>源文件</em>(Source code file)。<em>头文件</em>用于存放对类型定义、函数声明、全局变量声明等实体
C++头文件源文件的关系以及makefile文件
背景因为函数之间需要相互引用,写入一个文件显得杂乱。写入不同文件,引用和编译也很麻烦。故用<em>头文件</em>。规则<em>头文件</em>的格式:#ifndef #define #endif<em>源文件</em>的格式: 对于实现<em>头文件</em>函数的<em>源文件</em>,需要引用其实现的<em>头文件</em>。 对于需要使用其他<em>源文件</em>函数的<em>源文件</em>,也需要引用<em>头文件</em>。对于格式: 当<em>源文件</em>和<em>头文件</em>不在一个文件夹里的时候,路径的写
vs2010 文件多 新建类似头文件源文件
类多,不想只放在<em>头文件</em>和<em>源文件</em>中,我看别人都<em>可以</em>分成一个类似文件夹的方式显示(就是类似<em>源文件</em>的形式,只是名不一样)? 右键-添加-新建筛选器
CCS6.2版本Dsp28335工程(包含基本模块的源文件头文件)
自己从ccs3.3版本移植到ccs6.2版本的工程。导入到ccs6.0以上版本时,选择import 3.3pro即可。可能需要稍微改动一下工程属性。给刚刚接触dsp28335的朋友们吧。下载器使用的是xds100v2,工程里<em>可以</em>修改
codeblocks:使用多个头文件源文件会遇到的问题
1.无法编译文件?解决方法:1.在添加时记得勾上debug和release2.若已经添加,则在相应文件点击右键,点击property在构建那一栏里勾上debug和release2.复制项目的相应文件,并相应添加了,并且也勾上debug和release,好像有莫名奇妙的错误可能解答:可能把一些之前从项目移除的文件也移动了(如果是打开文件手动复制的话),推荐以后还是点击相应的<em>头文件</em>再另存为。3.复制了,
头文件之前包含其他头文件与在源文件前包含头文件有什么区别 #include“”
相同点: <em>头文件</em>与源代码都是<em>源文件</em>,都用纯文本文件存储,都需要遵照C/C++语言规范来写,都<em>可以</em>使用类型定义和常、变量定义,都<em>可以</em>包含函数的声明和实现,都能包含宏定义,都使用相同的<em>调用</em>规范。 不同点: C/C++的编译器规定源代码文件必须包含函数入口,即main函数,或者winmain函数。而<em>头文件</em>不得包含函数入口,也就是说,<em>头文件</em>不<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和C++不同源文件中重名变量的问题
在CSAPP中看到的程序链接规则: 函数名, 有初值的全局变量, 编译器会把它<em>作为</em>"强"符号, 而无初值的全局变量, 编译器会把它<em>作为</em>"弱"符号. 链接的时候, 如果不同文件中出现同名的"强"符号, 链接失败. 如果同名的有一个"强"符号, 多个弱符号, 链接"强"符号, 丢弃"弱"符号. 如果只有多个同名的"弱"符号, 则随机选一个链入可执行文件, 这也是有道理的, 因
C++头文件源文件的编译链接
一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++<em>源文件</em>,里面放的都是C++的源代码;而.h文件则被称作C++<em>头文件</em>,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,<em>可以</em>分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是相对独立的,...
vs2010不同源文件调用
由于考虑到大型工程的项目的维护,会使得
头文件源文件在不同目录情况下 Makefile自动推导依赖关系的实现
参考 跟我一起写Makefile http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225&extra=&authorid=10610714&page=1 这两天
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
DLL头文件源文件的基本编写格式
**************************************** Module:Mylib.h **************************************** #ifdef MYLIBAPI //MYLIBAPI应该在所有的DLL<em>源文件</em>包含Mylib.h之前定义 //此时所有的由MYLIBAPI前缀定义的函数、C++类或变量将定义为导出
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
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的主要用途是为了对硬件进行访问以及追求高效率
C头文件组织与包含原则
说明      本文假定读者已具备基本的C编译知识。      如非特殊说明,文中“<em>源文件</em>”指*.c文件,“<em>头文件</em>”指*.h文件,“引用”指包含<em>头文件</em>。   一、<em>头文件</em>作用      C语言里,每个<em>源文件</em>是一个模块,<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>某一函数的时候,只要将包含这个
彻底搞明白win32编程 .h头文件和.cpp源文件关系
一.想把项目的全局参数都放在一个文件里,好方便对初始值修改。 步骤: 1.新建一个.h<em>头文件</em>,只声明参数为全局变量(注意是声明!!!)。 2.一定要extern,这才是声明全局变量 而且 一定不能赋初值 extern int a; 根据C++标准的规定,一个变量声明必须同时满足两个条件,否则就是定义: (1)声明必须使用extern关键字; (2)不能给变量赋初值; <em>头文件</em>请...
为什么在头文件中有extern "C" ? .
#ifdef __cplusplus extern "C" { #endif 上述的代码片段,经常出现在程序的一些<em>头文件</em>中。有什么用途呢?!今天我来唠叨唠叨。 首先我们要了解一下C/C++中关键字extern的作用---用于定义一个标示符的可见性范围(详细见我的另外一篇有关可见性的博文-----《什么是internal linkage 和external linkage??》 )。 ex
头文件还是源文件中使用extern
extern应该放在<em>源文件</em>还是<em>头文件</em>?
include怎么关联头文件头文件如何关联源文件头文件被重复包含的危害?怎么防止重复包含?
<em>头文件</em>(.h)的功能是一般用来进行声明的(函数,类或变量引用,宏定义)。 <em>源文件</em>(.cpp)是用来进行定义的(函数,类定义,变量定义)。 #include 是在编译器进行编译之前,即在预编译时把它后面所写的那个<em>头文件</em>的内容,完完整整地、 一字不改地包含到当前的<em>源文件</em>中来。   1.<em>源文件</em>如何根据#include来关联<em>头文件</em>         A)  #include &amp;lt;&amp;gt;  ...
C++ (vs2012) 初学头文件源文件
直接上图 最开始始终不明白<em>头文件</em>和<em>源文件</em>的区别 今天做了一个多态的例子才搞明白这一点 <em>头文件</em>里面存放的是函数定义,<em>源文件</em>里放的是函数具体实现 当然如果你的类不需要让别的类引用,定义就<em>可以</em>不放在<em>头文件</em>里,直接放在cpp里即可 代码:Animal.h class Animal { public: Animal(); ~Animal();
C语言中,头文件源文件的关系
<em>简单</em>的说其实要理解C文件与<em>头文件</em>(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段  2.词法与语法分析阶段  3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还<em>可以</em>用
C++中头文件(.h)和源文件(.cpp)中都应该写什么
1.        .h叫做<em>头文件</em>,它是不能被编译的。“#include”叫做编译预处理指令,<em>可以</em><em>简单</em>理解成,在demo.cpp中的#include&quot;demo.h&quot;指令把demo.h中的代码在编译前添加到了demo.cpp的头部。每个.cpp文件会被编译,生成一个.obj文件,然后所有的.obj文件链接起来共同实现整个程序的完整运行。因此<em>头文件</em>中只进行常量(constant)、变量(variab...
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 
为什么类的定义应当写在头文件中,从而被多个源文件包含?
比如myclass.h定义了一个类myclass(只定义类,不定义成员函数),file1.cpp里#include "myclass.h",编译得到file1.obj;file2.cpp里也#include "myclass.h",编译得到file2.obj;那么把file1.obj和file2.obj(和运行库)连接起来生成可执行文件的时候,为什么不会有冲突呢?2个文件都包含了myclass类的
头文件源文件工程构建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...
GCC编译为什么不用包含头文件
编译结果:思考1:为什么a中没有包含b的<em>头文件</em>,却能<em>调用</em>b中的函数?因为a.c和b.c用gcc一起联合编译,且只有一个main函数,在编译阶段,a会自动去b中寻找函数体.思考2:将A的定义由a.h中改为在b.c中定义,编译报错说A未定义?因为预处理在编译之前,在预处理的时候,会展开#替换掉函数中的#等语句,这时候会检查出A为定义....
函数声明放在头文件中,函数的定义放在实现文件中,然后在主函数中调用
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)
解决VS2015中无法加载”graphics.h”头文件的问题
PS:其实VS的各种版本,我们只需要下载好对应的lib和include文件夹就<em>可以</em>,一下的操作方式都是相同的首先需要从这个百度网盘地址链接: 点击该链接,密码为wi9b 密码: wi9b然后下载下面两个文件:下载完后打开下载好的Inlcude文件夹,将里面的两个文件进行复制,然后粘贴到如上图所示的文件夹中,继续打开下载好的lib2015文件夹,将里面的东西全部选中复制,粘贴到如上图所示的文件夹,因...
C语言通过.h头文件引入自己写的源程序
通过.h引入自定义函数 1.在get_line.h文件中声明并定义函数,如下: #include &amp;lt;stdio.h&amp;gt; #define MAXLEN 1000 int m_getline(char line[]){ /* 输入字符串,返回数组长度 */ int c,i; for (i = 0; i &amp;lt; MAXLEN &amp;amp;&amp;amp; (c = getchar()) !...
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++_头文件源文件
// // Human.h // #ifndef HUMAN_H_INCLUDED #define HUMAN_H_INCLUDED #include class Human { public: void SetHeight(int); int GetHeight(); private: int height; }; #endif // HUMAN_H_INCLUDE
声明在头文件和实现文件中的区别
调试程序的时候,突然想到这个问题,百度一下发现有不少这方面的问答,粗略总结一下: 属性写在.h文件中和在.m文件中有什么区别? objective-c中有分类和类扩展的概念,而实现文件中的类声明实际上就是类扩展 @interface部分为类扩展(extension)。 其被设计出来就是为了解决两个问题的,其一,定义类私有方法的地方,也就是下面说到的区别一。其
static变量放在头文件的后果
问题:想用 static TList* g_xxx =NULL; 当全局变量存链表头,但是可能在多处使用该全局变量,listGetHead()之类的参数用,所以就打算把static变量暴露出去,放在<em>头文件</em>。 最后出现了一个问题,那就是往链表存东西,当时用listGetHead和listGetNext之类的传全局变量都能传,到想用它时候从别处使用,g_xxx仍然为NULL。 这种定义
类型定义、数据定义放在头文件里?还是c文件?
类型定义不分配内存的,比如类的定义,结构体的定义,它是定义一个数据类型而已 数据定义分配内存,比如类对象定义,变量定义 一个原则: 不分配内存的,放在<em>头文件</em> 分配内存的放在c 或cpp文件 <em>头文件</em>中最好不要定义并初始化一个数组,<em>头文件</em>用extern,而在c文件定义并初始化 <em>头文件</em>中用extern是表示这个变量是在外部定义,此处要用到,但没有分配内存空间
Visual Studio 2017 多源文件同时编译,及C Primer Plus代码无法运行的解决办法。
步骤如下: 1、新建项目,选择【Windows桌面向导】 2、选择建立【控制台应用程序】,选后只选择【空项目】,去选【安全开发生命周期检查(SDL)】 (否者会出现 已完成生成项目“.vcxproj”的操作 - 失败) 3、使用.c后缀,并且多个.c文件时,一起编译后,调试即可运行。 ​ ...
头文件与库文件的区别
一、<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++ inline内联函数放头文件还是放cpp中的问题
原文:http://stackoverflow.com/questions/3992980/c-inline-member-function-in-cpp-file   Quoting from C++ FAQ: Note: It's imperative that the function's definition (the part between the {...}) be ...
数据结构| |浅谈工程中头文件源文件
       最近在学习数据结构的时候,创建一个工程之后,一个工程里面出现好几个<em>源文件</em>和<em>头文件</em>,一下子就不理解这是啥意思,如何来将这些东西连接在一起,代码测试的时候是如何实现的。一般都是一个<em>头文件</em>和两个<em>源文件</em>。一个<em>源文件</em>是写<em>头文件</em>里面声明的函数的定义的部分的,而另外一个<em>源文件</em>就是对于该工程的测试。        通常在一个c程序中,只包含两类文件.c文件和.h文件。其中,.c文件被称作是<em>源文件</em>,...
C++中头文件(扩展名.h),源文件(扩展名.CPP)作用和区别
<em>头文件</em>声明,<em>源文件</em>实现。编译的时候只对<em>源文件</em>处理,<em>头文件</em><em>可以</em>很方便的互相引用。一般来说看<em>头文件</em>能知道这个类有哪些变量、函数。函数具体实现会在<em>源文件</em>中写。...
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) 示例如下:
在vs2010中使用“#include”提示无法打开源文件
解决方案: 把#include改为:#includeusing namespace std; #include是C语言风格,但是在标准C 里面,是不用#include 的,而要使用#include 在VC6是在C 标准出来前发布的,所以它<em>可以</em>使用#include 这形式。VS2010采用标准C格式
c语言笔记--头文件源文件的区别
c语言笔记--<em>头文件</em>和<em>源文件</em>的区别  首先,我们<em>可以</em>将所有东西都放在一个.cpp文件内. 然后编译器就将这个.cpp编译成.obj,obj是什么东西? 就是编译单元了.一个程序,<em>可以</em>由一个编译单元组成, 也<em>可以</em>有多个编译单元组成. 如果你不想让你的源代码变得很难阅读的话, 就请使用多个编译单元吧.(一个函数不能放到两个编译单元里面,但两个以上 就<em>可以</em>分别放在一个单元,也就是cpp里面)
把声明(如函数原型声明)放在头文件,并在需要时用#include指令把他们包含在源文件中,这么做有什么好处
声明只需要编写一次,这样以后维护和修改时更加容易,同样,声明只编写一次消除了在多份拷贝中出现写法不一致的机会
关于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
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文件中定义的变量,函数将会出现“重复定义”的错误。 举例如下:
程序编译过程、头文件源文件的处理
程序编译顺序如下图所示: 在这里需要着重强调下:<em>头文件</em>的    包含指令#include. 例1: 一个工程中,只有xxxx.c和xxxx.h两个文件。在xxx.c这个源程序中,程序如下: #include “xxxx.h” ………. ………. // end of file 这个源程序在编译预处理的时候,包含了xxxx.h这个<em>头文件</em>,<em>可以</em>理解为将这个<em>头文件</em>中的内容全部复制到这个<em>源文件</em>的#incl...
C++中为什么要头文件源文件分开写呢?
对c&c++程序来说,基本上来说都是要把<em>源文件</em>和<em>头文件</em>分别编写。一般都是代表一个基本功能的<em>源文件</em>引用相应的<em>头文件</em>。 一个 相关功能的模块可能有若干对<em>源文件</em>和<em>头文件</em>组成。这是基于组件编程的核心。 在我看来,他的好处是巨大的,是java不可比拟的,也是不可复制的: c语言中<em>头文件</em>中一般定义了函数的声明、结构体的定义、宏定义。(常量和全局变量最好放到<em>源文件</em>中) 1)
头文件、库文件、静态库、动态库
<em>头文件</em>
关于C语言多个源文件编译成一个程序
第一次用CSDN的博客,慕名而来,决定好好经营下自己的技术博客。今天看《C和指针》中第二章编程训练的第一题,就是关于C语言多个<em>源文件</em>编译成一个程序的问题。之前自己一直都不太搞得懂这个,不过之前写的程序都是<em>简单</em>的,一个<em>源文件</em>就能搞定的那种,所以也一直懒了没有去学怎么,心里隐隐的对学习心的东西感觉到恐惧。今天自己搬弄了一个下午,各种错误,要崩溃了。吃完饭,又继续投入到这其中当去。这次学聪明了,Google了下,然后学着对比着来修改自己的代码。这里就举自己写的一个很<em>简单</em>的范例来解说。题目是,一共有三个<em>源文件</em>,第一
同一个C语言工程不同C文件之间的函数互相调用问题(二)
首先,新建一个函数fun.c(不是fun.h) int add(int a, int b) { return a + b; } 然后,新建主函数main.c #include extern int add(int a, int b);  /*<em>调用</em>函数的过程*/ int main(void) { int a = 1, b = 2; printf("%d",add(a,b
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语言——模拟题(uestc)
c语言复习精粹(模拟题易错点) 模拟一 1、程序段: int k=0; while(k++&amp;amp;amp;amp;amp;lt;=2) printf(“last=%d\n”,k); last= _____ A2 B3 C4 D无结果 2、若二维数组a有m列,则a[i][j]元素前的数据元素个数为______ A jm+i B im+j C im+j-1 Dim+j+1 3、在c语言中,若未在函数定义时说明函数类型,则函数默认的...
源文件,目标文件与可执行文件
C编程的基本策略是使用程序将源代码转换为可执行文件,此文件包含可运行的机器语言代码。C分两步完成这一工作:编译和链接。编译器将源代码转换为中间代码,连接器将此中间代码与其他代码相结合来生成可执行文件。C使用被划分为两部分的这一方法使程序便于模块化,你<em>可以</em>分别编译各个模块,然后使用连接器将编译过的模块结合起来。这样,如何需要改变一个模块,则不必重新编译所有其他模块。同时,链接器将您的程序与编译的库代
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文件和头文件
在实际的开发项目当中 ,我们通常需要自己编写自己的<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语言数组、结构、源文件头文件
在初步接触c语言的时候我们往往会有以下问题:c语言的结构(如数组、结构)是什么时候分配的地址空间?数组a[]中的a到底代表什么意思? 如何为结构分配空间?结构如何声明,如何初始化?如何表示结构?指针还是结构本身?c中.h文件是什么类型的文件? 一、数组和指针 1、数组的声明方式 为了声明数组,需要说明数组元素的类型和数量,例如 int a[10]; 此时已经给他分配空间了!;指针没有
字符串常量指针在头文件中定义初始化与源文件中定义并初始化的区别
1)在<em>头文件</em>中定义并初始化,那么包含了该<em>头文件</em>的每一个编译单元不仅会为每一个常量指针常量(如const char * const)创建一个独立的拷贝项,而且也会为哪个长长的字符串字面常量创建一个独立的拷贝项,,相当于在每一个编译单元内分别定义和初始化每一个常量时(字符串常量与整型或浮点型常量定义不同,后者在初始化完后不再需要哪个字面常量)。因此每一个编译单元内访问的字符串常量都是它自己单独创建的拷
C语言编程 多个常用头文件源代码
C signal.h errno.h netdb.h setjmp.h signal.h string.hC signal.h errno.h netdb.h setjmp.h signal.h string.hC signal.h errno.h netdb.h setjmp.h signal.h string.h
Makefile中如何根据源文件自动生成其所需要的头文件
前言 Makefile自动生成<em>头文件</em>依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程。 Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成<em>头文件</em>依赖。 CC = gcc CFLAGS = -Wall -O INCLUDEFLAGS = LDFLAGS = OBJS = seq.o TARGETS = t
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.
java源文件当中可以有多个类,但是为什么只能有一个public类呢? 当类被修饰为public的话,为什么源文件名必须要与类名相同呢?
解析: 1、只有一个public类: 第一、每个编译单元(文件)只能有一个public 类。这么做的意思是,每个编译单元只能有一个公开的接口,而这个接口就由其public 类来表示。 第二、java程序的入口是main方法,所以被定为public的这个类里一定是含有main方法的类,而且该类的名称要和文件名一致,因为虚拟机开始要找main的。 第三、你<em>可以</em>根据需要,往这个文件里面添加任意多
MFC工程中导入使用已有的.h文件和.cpp文件
对于很多工程来说,我们不用每一个类都需要自己来写,如果有别人已经编写好的类,我们<em>可以</em>拿过来直接用,但这需要我们把这些文件导入我们的工程中。首先你得把自定义的.h和.cpp文件右键添加到你的MFC工程中,然后再#include引用之。 <em>头文件</em>--添加--现有项
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.
C语言中:在头文件中使用static定义变量意味着什么?
C语言中:在<em>头文件</em>中使用static定义变量意味着什么? 看到有一位同学在<em>头文件</em>中这么写: static const wchar_t* g_str1 = … static const wchar_t* g_str2 = … 这种定义变量的方式我从来没有见过,而且它还能顺利通过编译,于是我很想知道编译器是如何处理这种变量定义的。 定义全局变量时使用static,意味着该变量的作用域只限于定...
头文件中无法进行#define宏定义常量
在用MDK5编程时,发现当在<em>头文件</em>中用#define宏定义某常量,然而在<em>源文件</em>中无法引用该<em>头文件</em>的宏定义常量,但是在VS2013中却<em>可以</em>。 同时在网上查找诸多资料后发现是因为编译器的问题,不同的编译器对此规定不同,有的允许在<em>头文件</em>中进行宏定义常量,有的不行(定义后无法使用,编译不报错)。...
jquery/js实现一个网页同时调用多个倒计时(最新的)
jquery/js实现一个网页同时<em>调用</em>多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js //js2 var plugJs={     stamp:0,     tid:1,     stampnow:Date.parse(new Date())/1000,//统一开始时间戳     ...
设计模式-基于C#的工程化实现及扩展.part2下载
前26章!前26章!前26章!前26章!前26章!前26章!前26章! 相关下载链接:[url=//download.csdn.net/download/code_ming/2272442?utm_source=bbsseo]//download.csdn.net/download/code_ming/2272442?utm_source=bbsseo[/url]
Unix环境高级编程下载
Unix编程入门图书,讲解了Unix系统函数以及一些操作。很值得一看。 相关下载链接:[url=//download.csdn.net/download/hxamw0622/2317676?utm_source=bbsseo]//download.csdn.net/download/hxamw0622/2317676?utm_source=bbsseo[/url]
CRC16校验小助手下载
CRC16校验小助手,本人在开发上位机软件时做的一个方便调试 相关下载链接:[url=//download.csdn.net/download/LMH1472558/2428605?utm_source=bbsseo]//download.csdn.net/download/LMH1472558/2428605?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 数据库课程设计源文件 数据库课程设计源文件
我们是很有底线的