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

Bbs1
本版专家分:0
结帖率 66.67%
Bbs6
本版专家分:8105
Bbs1
本版专家分:0
Bbs2
本版专家分:185
关于定义一个结构体可以被其他的源文件使用
第一步:首先建立一个<em>头文件</em>  (在KEIL中,或许一个<em>头文件</em>中有其他的定义等,为防止该在包含<em>头文件</em>时,编译产生了重复定义的现象,所以我在这专门定义了一个<em>头文件</em>用来存放自定义的结构体) 第二步:在这个<em>头文件</em>中定义结构体 第三步:在其他使用到的<em>源文件</em>中包含该<em>头文件</em>  在含有main的<em>源文件</em>中,若要使用PM_Sensor_Data这个结构体变量,声明如下:
c++中头文件源文件的使用
c++中<em>头文件</em>和<em>源文件</em>的使用head.h中#ifndef HEAD_H #define HEAD_Hvoid sum(const int &a,const int &b);#endifsource.cpp中#include #include"head.h" void sum(const int &a,const int &b) { std::cout << a+b <<
头文件与同名源文件的关系
1,系统自带的<em>头文件</em>用尖括号括起来,这样编译器会在系统文件目录下查找。 #include 2,用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中<em>可以</em>指定和修改库文件查找路径,Unix和Linux中<em>可以</em>通过环境变量来设定)中查找,最后在系统文件中查找。 #include “xxx.h” 二、<em>头文件</em>如何来关联<em>源文件</em>     这个问题
C语言里 头文件源文件 作用是什么?
在C语言家族程序中,<em>头文件</em>被大量使用。一般而言,每个C++/C程序通常由<em>头文件</em>(header files)和定义文件(definition files)组成。<em>头文件</em><em>作为</em>一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。而且 .c就是你写的程序文件。   一般在一个应用开发体系中,功能
c语言源文件为什么要引入同名头文件
在编译器眼中其实.c文件和.h文件并没有什么本事的区别,都是同样的文件,并不是说编译<em>头文件</em>的时候就会去找同名<em>头文件</em>,.h文件的内容会被完全替换<em>源文件</em>中的include "xxx.h",然后编译成.s 汇编文件,最后在链接的时候才和外部的符号进行链接。为什么多了一个.h的文件大概是为了方便区分。 那为什么常见自己写的<em>源文件</em>中会看到所写的include "xx.h",引入同名<em>头文件</em>呢,这句话并不
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/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源文件中要包含自己的头文件
引言:             我们经常在c工程中发现,<em>源文件</em>中要包含自己的<em>头文件</em>。一直以来,都不知道为什么这样做。现在,我知道了。 以前的认知:  我认为,.c文件没有必要包含自己的.h文件。.h文件包含.c文件中定义的函数和全局变量的声明,.h文件就是.c文件提供的对外接口文件。既然.h文件就是.c文件提供的对外接口文件,那么.c文件就没必要包含自己的.h文件了(.h文件是对外提供用
如何在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
可否把模板的头文件源文件分开编译
    严格意义上说,不行,不过<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++ _c语言模块_头文件_源文件_头文件搜索路径
<em>头文件</em> 为什么会有<em>头文件</em>; 怎么制作<em>头文件</em>; 我们的编译器是怎么找到<em>头文件</em>; 模块:有组织有结构的来给代码划分模块,处理同一个功能代码,我们放到一个模块里面,.c文件 假设我们新增一个数学函数<em>源文件</em>,并且添加到编辑器 代码模块的原则: 如果这个函数接口,<em>可以</em>公开给外部使用,那么就要把这个函数的声明编写到<em>头文件</em> 如果这个函数接口,不给外
把声明(如函数原型声明)放在头文件,并在需要时用#include指令把他们包含在源文件中,这么做有什么好处
声明只需要编写一次,这样以后维护和修改时更加容易,同样,声明只编写一次消除了在多份拷贝中出现写法不一致的机会
多个.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++中的<em>头文件</em>和<em>源文件</em> 一、C++编译模式 通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++<em>源文件</em>,里面放的都是C++的源代码;而.h文件则被称作C++<em>头文件</em>,里面放的也是C++的源代码。 C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,<em>可以</em>分成不同的部分分别放在不同的.cpp文件
分开编写头文件源文件
创建一个新的项目右击——&amp;gt;属性单击常规——配置类型的默认将其设置为单击应用——&amp;gt;确定Ctrl+F7进行代码编译 + F7会生成
C语言一个源文件如何调用另一个源文件里的函数
转载请注明源地址:http://write.blog.csdn.net/postedit/77096757
C++头文件源文件的编译链接
一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++<em>源文件</em>,里面放的都是C++的源代码;而.h文件则被称作C++<em>头文件</em>,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,<em>可以</em>分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是相对独立的,...
C++中对于类来说头文件(.h)和源文件(.cpp)都应该写些什么 (类的常规创建)
<em>头文件</em>(.h):     写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。     在写<em>头文件</em>时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下):   #ifndef CIRCLE_H #define CIRCLE_H //你的代码写在这里 #endif  
vs2010不同源文件调用
由于考虑到大型工程的项目的维护,会使得
C\C++ 头文件源文件注释
C语言编程规范-注释   规则: 1:一般情况下,源程序有效注释量必须在20%以上。 说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 2:说明性文件(如<em>头文件</em>.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改
头文件与库文件的区别
一、<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++有分离式编译,<em>可以</em>将一个程序分为多个<em>源文件</em>独立编译,再通过链接合并到一起。.h文件的作用只是在<em>源文件</em>中include,不会单独被编译。 如果在不同<em>源文件</em>间需要共享全局变量,这时就需要extern发挥作用。extern用于声明,声明<em>可以</em>声明多次,定义只能有一次。因为<em>头文件</em>可能会被多个<em>源文件</em>包含,所以全局变量的定义不可放在<em>头文件</em>中,否则会导致全局变量多重定义。 看下面的例子: //1.cp...
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语言多个源文件编译成一个程序
第一次用CSDN的博客,慕名而来,决定好好经营下自己的技术博客。今天看《C和指针》中第二章编程训练的第一题,就是关于C语言多个<em>源文件</em>编译成一个程序的问题。之前自己一直都不太搞得懂这个,不过之前写的程序都是<em>简单</em>的,一个<em>源文件</em>就能搞定的那种,所以也一直懒了没有去学怎么,心里隐隐的对学习心的东西感觉到恐惧。今天自己搬弄了一个下午,各种错误,要崩溃了。吃完饭,又继续投入到这其中当去。这次学聪明了,Google了下,然后学着对比着来修改自己的代码。这里就举自己写的一个很<em>简单</em>的范例来解说。题目是,一共有三个<em>源文件</em>,第一
为什么类的定义应当写在头文件中,从而被多个源文件包含?
比如myclass.h定义了一个类myclass(只定义类,不定义成员函数),file1.cpp里#include "myclass.h",编译得到file1.obj;file2.cpp里也#include "myclass.h",编译得到file2.obj;那么把file1.obj和file2.obj(和运行库)连接起来生成可执行文件的时候,为什么不会有冲突呢?2个文件都包含了myclass类的
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
codeblocks:使用多个头文件源文件会遇到的问题
1.无法编译文件?解决方法:1.在添加时记得勾上debug和release2.若已经添加,则在相应文件点击右键,点击property在构建那一栏里勾上debug和release2.复制项目的相应文件,并相应添加了,并且也勾上debug和release,好像有莫名奇妙的错误可能解答:可能把一些之前从项目移除的文件也移动了(如果是打开文件手动复制的话),推荐以后还是点击相应的<em>头文件</em>再另存为。3.复制了,
头文件源文件在不同目录情况下 Makefile自动推导依赖关系的实现
参考 跟我一起写Makefile http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225&extra=&authorid=10610714&page=1 这两天
inline函数定义放在头文件中的作用
两个文件: main.c中得代码如下 #include #include "print_inline.h" int main(int argc, char *argv[]) {     print_inline(); system("PAUSE");     return 0; } print_inline.h文件中得代码: #include inline
C++ (vs2012) 初学头文件源文件
直接上图 最开始始终不明白<em>头文件</em>和<em>源文件</em>的区别 今天做了一个多态的例子才搞明白这一点 <em>头文件</em>里面存放的是函数定义,<em>源文件</em>里放的是函数具体实现 当然如果你的类不需要让别的类引用,定义就<em>可以</em>不放在<em>头文件</em>里,直接放在cpp里即可 代码:Animal.h class Animal { public: Animal(); ~Animal();
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>的体制越来越臃肿。于是提倡将代码写到不同的多个<em>源文件</em>中去。将代码写到多个<em>源文件</em>中去就会遇到各个<em>源文件</em>中函数与变量的<em>调用</em>规则问题。 通常人们习惯性的把宏定义、结构体、联合体、枚举、外部变量和外部函数声明等写入到<em>头文件</em>.h中去,而把函数的声明、变量定义等写入到.c文件中去。当某一.c<em>源文件</em>需要<em>调用</em>某一函数的时候,只要将包含这个
C头文件组织与包含原则
说明      本文假定读者已具备基本的C编译知识。      如非特殊说明,文中“<em>源文件</em>”指*.c文件,“<em>头文件</em>”指*.h文件,“引用”指包含<em>头文件</em>。   一、<em>头文件</em>作用      C语言里,每个<em>源文件</em>是一个模块,<em>头文件</em>为使用该模块的用户提供接口。接口指一个功能模块暴露给其他模块用以访问具体功能的方法。使用<em>源文件</em>实现模块的功能,使用<em>头文件</em>暴露单元的接口。用户只需包含
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的主要用途是为了对硬件进行访问以及追求高效率
一个Java源文件是否可以有多个类?有什么限制?
Java<em>源文件</em><em>可以</em>有多个类,而且<em>源文件</em>名必须与public类的类名相同。正因为如此,一个Java<em>源文件</em>只能定义一个public类。
c++之include通常使用方法和#include引进cpp文件时发生报错error LNK2005(通常是include的h文件)
1.通常写法 //test.app #include&amp;lt;iostream&amp;gt; #include &quot;func.h&quot;                                 using namespace std; void main() {     char str[] = &quot;abcde&quot;;      fanzhuan(str);     cout &amp;lt;&amp;lt; str...
头文件、库文件、静态库、动态库
<em>头文件</em>
为什么在头文件中有extern "C" ? .
#ifdef __cplusplus extern "C" { #endif 上述的代码片段,经常出现在程序的一些<em>头文件</em>中。有什么用途呢?!今天我来唠叨唠叨。 首先我们要了解一下C/C++中关键字extern的作用---用于定义一个标示符的可见性范围(详细见我的另外一篇有关可见性的博文-----《什么是internal linkage 和external linkage??》 )。 ex
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
彻底搞明白win32编程 .h头文件和.cpp源文件关系
一.想把项目的全局参数都放在一个文件里,好方便对初始值修改。 步骤: 1.新建一个.h<em>头文件</em>,只声明参数为全局变量(注意是声明!!!)。 2.一定要extern,这才是声明全局变量 而且 一定不能赋初值 extern int a; 根据C++标准的规定,一个变量声明必须同时满足两个条件,否则就是定义: (1)声明必须使用extern关键字; (2)不能给变量赋初值; <em>头文件</em>请...
关于C和C++不同源文件中重名变量的问题
在CSAPP中看到的程序链接规则: 函数名, 有初值的全局变量, 编译器会把它<em>作为</em>"强"符号, 而无初值的全局变量, 编译器会把它<em>作为</em>"弱"符号. 链接的时候, 如果不同文件中出现同名的"强"符号, 链接失败. 如果同名的有一个"强"符号, 多个弱符号, 链接"强"符号, 丢弃"弱"符号. 如果只有多个同名的"弱"符号, 则随机选一个链入可执行文件, 这也是有道理的, 因
C++中为什么要头文件源文件分开写呢?
对c&c++程序来说,基本上来说都是要把<em>源文件</em>和<em>头文件</em>分别编写。一般都是代表一个基本功能的<em>源文件</em>引用相应的<em>头文件</em>。 一个 相关功能的模块可能有若干对<em>源文件</em>和<em>头文件</em>组成。这是基于组件编程的核心。 在我看来,他的好处是巨大的,是java不可比拟的,也是不可复制的: c语言中<em>头文件</em>中一般定义了函数的声明、结构体的定义、宏定义。(常量和全局变量最好放到<em>源文件</em>中) 1)
linux gcc编译多个源文件的方法
一. 常用编译命令选项 假设源程序文件名为test.c。 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。 2. 选项 -o 用法:#gcc test.c -o test 作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。
C语言程序简单实现贪吃蛇小游戏—不需要graphics.h头文件
最近学习了一些数据结构的知识,然后试着用链表实现一个小游戏(贪吃蛇),在网上看了一些别人写的代码,然后自己重新改写(以前是一个主函数,现在分成了几个小函数方便查看功能,加了内存释放函数)了。在这里发表自己的 第一篇技术博客,希望大家一起讨论、学习,如果有错误,大家积极指出,这样才会有进步! snake.h <em>头文件</em> #ifndef _SNAKE_H_H_H #define _SNAKE_H_H
C语言多个源文件编译成一个程序
C语言的基本组成单元是函数,各个函数之间<em>可以</em>相互引用。在学到静态函数有时又将为内部函数和外部函数,即分别用static和extern说明的函数时,有不少人感到很迷惑:“外部”和“内部”到底是怎么一回事呢? 一般来说,我们编制的C语言源程序都是放在一个扩展名为.C的文件中,这对一个较<em>简单</em>的程序是合适的,但对于大型项目就不合适了,其一,大项目往往由多人合作完成,大家都来操作同一个文件极易出错;其二,大
C语言第十五篇:C语言中.h和.c文件解析(很精彩)
C语言中.h和.c文件解析
Qt含各种头文件源文件的方法
QT项目中可能有很多的文件夹需要包含进来,有的文件夹是一个独立的功能模块,这个项目可能需要而别的项目可能不需要,怎样将其包含进来呢。这里有两种方法。
包含同一头文件的多个源文件,声明并定义相同类,结构体的有趣问题
一个<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语言头文件组织与包含原则(函数指针和结构体的前项声明)
http://jingpin.jikexueyuan.com/article/38309.html 语言<em>头文件</em>组织与包含原则 作者: clover_toeic 发布时间:2015-07-07 16:38:58 说明      本文假定读者已具备基本的C编译知识。      如非特殊说明,文中“<em>源文件</em>”指*.c文件,“<em>头文件</em>”指
头文件里面实现一个函数,在两个cpp中包含,则重复定义,如果加上inline则不会报错
为什么类的定义应当写在<em>头文件</em>中,从而被多个<em>源文件</em>包含?比如myclass.h定义了一个类myclass(只定义类,不定义成员函数), file1.cpp里#include "myclass.h",编译得到file1.obj; file2.cpp里也#include "myclass.h",编译得到file2.obj; 那么把file1.obj和file2.obj(和运行库)连接起来生成可执行文件的
win10 系统盘瘦身--安装VS2015后搬移 visual的安装源文件夹,释放C盘
对系统盘的操作需谨慎,本教程仅供参考,谨慎操作,不对可能出现的不可预知风险负责!!! 谨慎操作啊!!!! win10 的系统盘总是莫名其妙的越来越小,很烦啊,用360 中的  系统瘦身功能成功释放 系统盘, 具体操作看下图: 1、勾选 系统压缩,压缩完后,会显示那些文件该删除,那些文件该搬移 对于要删除的文件, 最好打开所在文件夹目录 ,确认下,是不是没用,删除无害,切记,系统盘 删除操...
数据结构-栈的头文件编写以及调用(多么痛的领悟!)
最近学数据结构
C语言学习笔记之 第六讲:头文件源文件以及include包含指令
1、#include说明: #include后<em>可以</em>包含任意类型,不仅.h<em>可以</em>,也<em>可以</em>.c,也<em>可以</em>.cpp。也就是其他的代码文件<em>可以</em>利用#include直接<em>调用</em>。       #include内容不能重复包含,将会出现变量重名。即#include后所包含内容重复,不行。如aq.cpp包含date.h,若include.cpp<em>调用</em>了aq.cpp,就不需要再<em>调用</em>date.h了,否则将出现变量重名,编
头文件中不要去定义函数
如果现在在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程序语言中,为了避免一个文件中的行数太多,导致拍错困难 <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.
关于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语言<em>源文件</em>,放在同一个工程中,打算依次运行每个<em>源文件</em>,测试效果。因为每个<em>源文件</em>中都有main方法,且<em>源文件</em>之间可能会有同名变量或同名函数,所以连接时会报错。我的解决办法是将每个<em>源文件</em>中的main方法改成main1、main2、main3......然后将每个<em>源文件</em>中的全局变量和函数改成静态的,最后新增一个包含main方法的<em>源文件</em>,在该main方法中
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; ...
STM32重要源文件头文件说明
对于STM32F4xx_StdPeriph_Driver,其重要<em>源文件</em>为: stm32f4xx_ppp.h:外设<em>头文件</em>。这里的ppp只是一个代码,在实际上是具体的外设名字,如ADC,DMA等。在实际使用时根据所需的外设选择性移植。                       在STM32F4xx_StdPeriph_Driver\inc中 stm32f4xx_ppp.c:外设<em>源文件</em>。这...
CCS编译添加链接库文件与头文件的方法
编译的include文件目录 Compiler -》 Preprocessor-》include search path //include文件搜索路径 $(Proj_dir);                                                               //注释:工程所在文件同级目录下   ../../include;              ...
变量与类的 声明和 定义 在头文件中的使用
什么是变量?变量或者叫对象,是一个有具名的、<em>可以</em>供程序操作的存储空间。这里具名是指变量是有名字的,可供操作是指能进行加减乘除或者输入输出等操作,存储空间则是指有一块属于它的内存空间。 为了便于说明,标题和后面的内容将对象分为两种。对于内置的,文章称<em>作为</em>变量,对于自定义的,称之为对象。 第一个问题:在C++中,什么是定义,什么是声明? ①定义:用于为变量分配存储空间,还可为变量指定
数据结构| |浅谈工程中头文件源文件
       最近在学习数据结构的时候,创建一个工程之后,一个工程里面出现好几个<em>源文件</em>和<em>头文件</em>,一下子就不理解这是啥意思,如何来将这些东西连接在一起,代码测试的时候是如何实现的。一般都是一个<em>头文件</em>和两个<em>源文件</em>。一个<em>源文件</em>是写<em>头文件</em>里面声明的函数的定义的部分的,而另外一个<em>源文件</em>就是对于该工程的测试。        通常在一个c程序中,只包含两类文件.c文件和.h文件。其中,.c文件被称作是<em>源文件</em>,...
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文件中定义的变量,函数将会出现“重复定义”的错误。 举例如下:
CCS6.2版本Dsp28335工程(包含基本模块的源文件头文件)
自己从ccs3.3版本移植到ccs6.2版本的工程。导入到ccs6.0以上版本时,选择import 3.3pro即可。可能需要稍微改动一下工程属性。给刚刚接触dsp28335的朋友们吧。下载器使用的是xds100v2,工程里<em>可以</em>修改
头文件源文件的关系
学习C过程,有许多应注意的细小的点,由于遇到文件引用的一些问题,引发了我的一点思考。 1、预处理阶段:编译器以C文件<em>作为</em>一 个单元,首先读这个C文件,发现第一句与第二句是包含一个<em>头文件</em>,就会在所有搜索路径中寻找这两个文件,找到之后,就会将相应<em>头文件</em>中再去处理宏,变量, 函数声明,嵌套的<em>头文件</em>包含等,检测依赖关系,进行宏替换,看是否有重复定义与声明的情况发生,最后将那些文件中所有的东东全部扫描进这个
C++的头文件源文件区别
一、声明与定义的区分:一个声明就是一个定义,除非 :声明:引入名称定义:引入实体1.它声明了一个没有详细说明函数体的函数2.它包含一个extern定义符且没有初始化函数或函数体3.它是一个包含在一个类定义之内的静态类数据成员的声明,它必须在最终程序的某处准确的定义一次4.它是一个类名声明,如class test;5.它是一个typedef声明。言外之意:1。类的声明也就是定义2。同时赋初值的声
python编程(import头文件
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】     关于python下面<em>头文件</em>引用,很多时候自己都会用错。所以,今天自己做了一些实验,特地记录一下,这样以后出问题的时候过来看一下。目前自己的工作平台还是以python2为主,所以这里使用的代码都是以python2<em>作为</em>基础练习的。 1、系统库的应用     这里说的系统库,一般是指
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
stm32 各头文件或C文件功能
stm32f10x.h           1、对所有的外设的地址进行映射,映射到存储区,即定义某外设结构体变量,因为结构体是连续存储的只要将外设的基地址强制转换为结构体类型的指针,那么该外设的寄存器就<em>可以</em>通过指针进行访问,以GPIO为例: 定义外设的结构体,结构体变量都是volatile类型,告诉编译器不要进行优化,读取值从内存读取不要读缓存。 typedef struct {   _
函数声明放在头文件中,函数的定义放在实现文件中,然后在主函数中调用
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)
python学习之头文件问题
!/usr/bin/python : 是告诉操作系统执行这个脚本的时候,<em>调用</em> /usr/bin 下的 python 解释器;!/usr/bin/env python(推荐): 这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再<em>调用</em>对应路径下的解释器程序完成操作。!/usr/bin
VS2015中新建项目后,无法添加新的源文件头文件
最近就一直遇到了这个问题,困扰了我很久,也在网上找了很多解决方案,但都是不尽人意的!以为自己辛辛苦苦装了两三个小时的VS2015崩了,也有很多人说我少了模板插件,重新更新模板就好了,可是可是,DOS下就没有权限去更新VS下的模板啊,最后真的以为我要重新装了,想想最近我的 颗盐 任务,觉得又要耽误了,就保持这最后一口气,发现了新大陆!新方法!所以,现在把我解决问题的方法分享出来,希望对大家有用!!!...
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...
全局变量能否放在头文件中定义
    今天遇到一个坑,在VS上进行多文件的编译运行的时候,在<em>头文件</em>中定义了全局变量a,该<em>头文件</em>被类的实现CPP和主函数所在的CPP包含且声明extern int a。但是在链接的时候报多重定义的错误。网上看了下,这篇文章给出了一个答案:能不能在<em>头文件</em>中定义全局变量?。总结起来就是,报错的原因就是有两个CPP,各自生成自己的OBJ,那么在查找符号的时候,都能发现对方那里也有一个变量a,那么就报错了...
同一个C语言工程不同C文件之间的函数互相调用问题(三)
关于(一)和(二)的方法的差异很显而易见,而当一个工程我们需要自定义多个函数的时候,就不能像(一)那样将每个函数都写成.h文件,然后在主函数的开头处声明。 然而,我们<em>可以</em>定义一个function.h文件来声明这些函数: #ifndef __FUNCTION_H__ #define __FUNCTION_H__    int fun(int,int);    int times(int
我第一次把一个程序分成多个源文件, 我不知道该把什么放到.c 文件, 把什么放到.h 文件。(“.h” 到底是什么意思?)
我第一次把一个程序分成多个<em>源文件</em>, 我不知道该把什么放到.c 文件, 把什么放到.h 文件。(“.h” 到底是什么意思?) <em>作为</em>一般规则, 你应该把这些东西放入头(.h) 文件中:•  宏定义(预处理#defines)•  结构、联合和枚举声明•  typedef 声明•  外部函数声明•  全局变量声明 当声明或定义需要在多个文件中共享时, 尤其需要把它们放入<em>头文件</em>中。特别是, 永远不要把外部函数
C/C++头文件的引用问题(#include使用)
C/C++<em>头文件</em>的引用问题(#include使用):   对于一个工程(如下): 在base中包含:func3.h,func3.c,文件夹main和文件夹func4; 在main中包含:main.c,func1.h,func1.c和文件夹func2; 在func2中包含:func2.h和func2.c; 在func4中包含:func4.h和func4.c。   因此: Mai...
C标准中一些预定义的宏,如__FILE__,__func__等
原文地址:http://blog.chinaunix.net/uid-20620288-id-3236787.html C标准中一些预定义的宏    C标准中指定了一些预定义的宏,对于编程经常会用到。下面这个表中就是一些常常用到的预定义宏。   宏   意义   __DATE__   进行预处理的日期(“Mmm dd yyyy”形式的字符串文字)   __FILE__   代表当前
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) 示例如下:
头文件之前包含其他头文件与在源文件前包含头文件有什么区别 #include“”
相同点: <em>头文件</em>与源代码都是<em>源文件</em>,都用纯文本文件存储,都需要遵照C/C++语言规范来写,都<em>可以</em>使用类型定义和常、变量定义,都<em>可以</em>包含函数的声明和实现,都能包含宏定义,都使用相同的<em>调用</em>规范。 不同点: C/C++的编译器规定源代码文件必须包含函数入口,即main函数,或者winmain函数。而<em>头文件</em>不得包含函数入口,也就是说,<em>头文件</em>不<em>可以</em>单独编译成一个程序,仅仅包含程序片断或者仅仅定
关于一个工程中多个文件的相互调用的学习笔记(C语言)
3、关于在一个工程里,有许多个<em>源文件</em>,其中只有一个是主函数,其他的都是定义的函数,你如何实现? 现在将自己的笔记记录如下: 1、举一个最<em>简单</em>的例子:比如有一个main.c文件,另外一个是Prin.c,要在main.c中<em>调用</em>Prin.c中定义的函数,需要新建一个Prin.h文件,然后在该文件中定义这个函数:如void Print(int n);然后在main.c中#include"Prin.h"
[VA]用Visual Assist X创建c/c++的头文件源文件的方法
在当前编辑的文件里,右键->Refactor(VA)->Create File…,在弹出来的对话框中输入文件名(<em>头文件</em>、<em>源文件</em>或资<em>源文件</em>): 再点击“ok”按钮,即可创建文件,并自动放入相应的文件夹里:
Makefile中如何根据源文件自动生成其所需要的头文件
前言 Makefile自动生成<em>头文件</em>依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程。 Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成<em>头文件</em>依赖。 CC = gcc CFLAGS = -Wall -O INCLUDEFLAGS = LDFLAGS = OBJS = seq.o TARGETS = t
vs中资源文件和外部依赖项是什么意思?
外部依赖项:程序中包含的<em>头文件</em>中所用到的<em>头文件</em> 资<em>源文件</em>:除了代码之外所需的其他如图片,菜单,工具栏等
编程判断是C源文件还是C++源文件
C+编译器会在编译C++源程序的时候自动生成一个宏:__cplusplus  <em>可以</em>通过这个宏来判断是C<em>源文件</em>还是C++<em>源文件</em> 代码如下 #include void main() { #ifdef __cplusplus printf("c++"); #else printf("c"); #endif }
C\C++ 编译器如何处理源文件
                                                C语言基础知识一、编译器如何处理C<em>源文件</em>(source file)。​ 1)、以某种编码方式替换<em>源文件</em>中的字符,例如:用换行符替换OS里的行尾指示符。​ 不同OS里的行尾指示符是不同的,例如Windows 是\r\n,UNIX 是 \r,MAC OS 是\n。​ 如:在8086汇编中,我们在DOS下编写...
C++命名规则------文件
文件源代码文件 文件的换行格式应该采用UNIX格式,而不采用windows格式; C++<em>头文件</em>应该有.h扩展。<em>源文件</em>一般有.cc(推荐),.C,.c++或.cpp扩展。 类应该在<em>头文件</em>中声明,在<em>源文件</em>中定义,文件名与类名相匹配。 所有的定义应该在<em>源文件</em>中。 文件的内容必须保持在80列内。 特殊的字符如TAB与分页必须避免,代码缩进时使用4个空格代替TAB。 不完整而分几行的必须是明显的,最后一个分隔
C++ 在.h文件中包含头文件和在.cpp文件中包含头文件有什么区别?
现有两个文件Test.h 和Test.cpp #include 在Test.h中包含 和在Test.cpp中包含有什么区别? 1、在cpp文件中包含.h文件,要么你要用到这个<em>头文件</em>中的函数或者类,要么就是实现这个<em>头文件</em>; 2、.h ---就是为了放一堆声明所产生的东西。 如果是定义放在.h中。 如果.h被重复包含多次,那么则会被报重定义。所以在.h 中都要---如果函数就要是inl
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++ primer》
c语言检查简单的语法错误
本程序使用c语言检查<em>简单</em>的语法错误,仅供参考
C语言头文件深入理解
C语言程序中,<em>源文件</em>通常分为两种:一种用于保存程序的声明(declaration),称为<em>头文件</em>;另一种用于保存程序的实现(implementation),称为定义(definition)文件。 C程序的<em>头文件</em>以“.h”为后缀,C 程序的定义文件以“.c”为后缀。 <em>可以</em>将 .h 文件的内容写在 .c 文件中,也<em>可以</em>将 .c 文件的内容写在 .h 中,但这是很不好的习惯。许多初学者用了<em>头文件</em>
.h头文件 .lib库文件 .dll动态库文件之间的关系
.h<em>头文件</em>是编译时必须的,lib是链接时需要的,dll是运行时需要的。 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件。如果要完成源代码的编译和链接,有<em>头文件</em>和lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。 .h .lib .dll三者的关系是: H文件作用是:声明函数接口 DLL文件作用是: 函数可执行代码
c语言数组、结构、源文件头文件
在初步接触c语言的时候我们往往会有以下问题:c语言的结构(如数组、结构)是什么时候分配的地址空间?数组a[]中的a到底代表什么意思? 如何为结构分配空间?结构如何声明,如何初始化?如何表示结构?指针还是结构本身?c中.h文件是什么类型的文件? 一、数组和指针 1、数组的声明方式 为了声明数组,需要说明数组元素的类型和数量,例如 int a[10]; 此时已经给他分配空间了!;指针没有
Makefile宏定义选项传递给C源文件
转载自     http://kuafu80.blog.163.com/blog/static/122647180201210281029722/   Makefile(或者shell)的变量通过gcc的-D宏定义选项传递给C<em>源文件</em>                       -- kuafu80 的博客在一些特别的场合需要把Makefile中定义的变量<em>作为</em>C源代码的初始值.比如__DATE__宏...
C源文件到可执行文件的过程
一、源程序到可执行文件共经历了4个过程。在使用GCC编译程序时,编译过程<em>可以</em>被细分为四个阶段,包括预处理、编译、汇编、链接。 1.  预处理 在预处理阶段,编译器主要作加载<em>头文件</em>、宏替换、条件编译的作用。一般处理带“#”的语句。 我们<em>可以</em>通过gcc 的 -E 选项进行查看,如下所示: [root@localhost 0001]#gcc -E main.c > main.i 编译器将m
文章热词 C/C++ C/C++培训 C/C++入门教程 C/C++课程 C/C++学习
相关热词 c++头文件源文件 c++源文件与头文件 c++ 命名空间 头文件和源文件 c++头文件 主函数 源文件 有c基础学习python 人工智能要学习c语言吗
我们是很有底线的