C语言文件怎么写?(转载)

---恢复内容开始---

c语言头文件怎么写?我一直有这样的疑问,但是也一直没去问问到底咋回事;所以今天一定要把它弄明白!

其实学会写头文件之后可以为我们省去不少事情,可以避免书写大量的重复代码,还在等什么快来看看吧!

大致格式:

#ifndef __ABC_H__

#define __ABC_H__

//以上是为了防止头文件被多次包含,可以省略,最好有,名字任意,保证唯一即可

//以下是宏定义,可有可无

#define MAX 100

#define MIN 0

//以下是结构声明,可有可无

typedef struct{

int a;

}ABC;

//以下是函数声明,可有可无

void abcfun(int a,int b);

...

#endif

c语言头文件的作用?

1,头文件可以定义所用的函数列表,方便查阅你可以调用的函数;

2,头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。

3,头文件只是声明,不占内存空间,要知道其执行过程,要看你头文件所申明的函数是在哪个.c文件里定义的,才知道。

4,他并不是C自带的,可以不用。

5,调用了头文件,就等于赋予了调用某些函数的权限,如果你要算一个数的N次方,就要调用Pow()函数,而这个函数是定义在math.c里面的,要用这个函数,就必需调用math.h这个头文件。

C语言头文件中,下划线具体是什么意思?请问有没有高手指点一下?

下划线没有什何特别的意思,就是一个变量的一部分,就是你定义char str[10],char _str[10],他们俩是不同的变量名,然后都是一个字符串变量,一般头文件里或者宏定义都在变量前加一个下划线,这都是习惯问题,以示和普通函数里变量的区别,

学C的时候老师好像说过,系统自己的变量一般都以下划线开头,以示区分。

#If define

#ifdef(#ifndef),#else,#endif,#if等都属于预处理条件编译的命令。预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。    1、   先来看一下,一个简单的应用,就是在头文件中使用,#ifndef  #define  .....................#endif  这三条指令。头件的中的#ifndef(if not define),这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。

还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:

#ifndef <标识>#define <标识>

............

#endif

<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:delay.h

#ifndef _DELAY_H_#define _DELAY_H_

......

#endif

这一个在一般的小型程序中经常用到,在做单片机的的程序时,经常把一些可以独立的模块写成头文件,方便程序的阅读和移植。

我看了老长时间的书,终于明白

为什么是:#ifndef _DELAY_H_#define _DELAY_H_

而不是:  #ifndef DELAY.H  #define DELAY.H

//////////////////////////

因为,后者,定义一个名称,是用于一个程序中或者头文件中的,名称定义

前者,是关于头文件包含的,不是名称定义的。用下划线代替“.”,是没有办法的办法,只有这样才能防止混乱。

前者的意思是,如果没有包含了这个头文件,就包含它。

后者的意思是,如果没有定义这个名称,就定义它。

其实就是换一种写法 以区分两种意思。

两者是不一样的意思。

摘自那本两个老外写的经典权威《C程序设计语言(第二版)》 第2章 2.1变量名该节

“……名字是由字母和数字组成的序列,但其第一个字符必须是字母。下划线被看做是字母……由于库例程的名字通常以下划线开头,因此变量名不要以下划线开头……”

首先是楼主那几个函数是系统文件自代函数,所以一般系统变量或函数名前会加上下划线以示区分.和头文件的下划线是2回事。

个人总结

模块化箱式设计——函数——函数出现

调用时的作用域问题——被调用的在前,调用的在后

嵌套调用,前面的调用后面的,后面的调用前面的——通过声明扩展作用域——声明出现

声明独立与c文件分离——头文件出现

---恢复内容结束---

时间: 2024-07-28 12:22:04

C语言文件怎么写?(转载)的相关文章

C语言中.h和.c文件解析(转载)

转载:http://www.cnblogs.com/laojie4321/archive/2012/03/30/2425015.html   简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:       1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相

[转]C语言文件输入/输出ACM改进版(freopen函数)

C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:379,457 浏览数发表评论阅读评论 文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 昨天发了一篇<C语言 使用文件输入/输出数据>,使用的是最普通的文件输入/输出方法,Felix大牛随后给了一种更简单的改进方法,在ACM中应用很广,而且超赞,现在来介绍一下. 这次用到的文件打开函数不再是fopen,而是stdio.h中包含的另一个函数fr

C语言文件操作函数大全(超详细)

C语言文件操作函数大全(超详细) 作者: 字体:[增加 减小] 类型:转载 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下 fopen(打开文件)相关函数 open,fclose表头文件 #include<stdio.h>定义函数 FILE * fopen(const char * path,const char * mode);函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态.mode有下列几种形态字符串:r 打开只读文件,

C语言文件读写操作总结

C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了.当使用打开函数时,必须给出文件名.文件操作方式(读.写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头.若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头. fopen(char

C语言文件操作函数的编写

 编写文件操作的头文件 /************************************************************************** Copyright(C)    :2014-08-5 toto Filename       :file.h Author          :涂作权 Version         :V1.1 Date            :2014-08-05 Description     :文件操作的头文件 Others  

C语言 文件

小白一个,看到有错误,希望指出,万分感谢 /****************************************************************C语言文件概述:    一般文件可分为二进制文件和文本文件. 约定:我们把数据在终端上的表现形式称为数据的终端形式,而不 称为字符形式. 注:终端是指键盘 显示器等和用户直接打交道的输入输出设备. 二进制文件是把内存中的书按其在内存中的储存形式原样输出到磁 盘上存放,也就是说存放的是数据的原样式. 文本文件是把数据终端形式的二

C语言 文件操作API介绍

文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来.从不同的角度可对文件作不同的分类.从用户的角度看,文件可分为普通文件和设备文件两种. 普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源文件.目标文件.可执行程序:也可以是一组待输入处理的原始数据,或者是一组输出的结果.

C 语言文件操作

1. 数据流:     程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流.     所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不能随机存取:也意味着是一段连续的内容,每块数据之间的顺序是确定的.比如一个很大的文件,不能一次性加载到内存里面,无法直接获取文件任意位置的内容,只能逐渐加载到内存.     比如 TCP 被抽象为 stream 而 UDP 被抽象为 block.     2. 缓冲区:     fopen 时, 磁盘 --> 缓冲区

C语言文件的概念和文件指针

1 C语言文件的概念 在程序中,当调用输入函数从外部文件中输入数据赋给程序中的变量时,这种操作成为“输入”或“读”:当调用输出函数把程序中变量的值输出到外部文件中时,这种操作称为“输出”或“写”. C 语言中,对于输入.输出的数据都按“数据流”的形式进行处理.也就是说,输出时,系统不添加任何信息:输入时,逐一读入数据,直到遇到 EOF 或文件结束标志就停止.C 程序中的输入.输出文件都以数据流的形式存储在介质上. 对文件的输入.输出方式也称为“存取方式”.C 语言中,有两种对文件的存取方式:顺序