文件结构

C语言文件名命名的规则

1、文件标识符分为两部分,即文件名前缀和后缀。文件名前缀的最前面要使用范围限定符——模块名(文件名)缩写。

2、采用小写字母命名文件,避免使用一些比较通俗的文件名,如:public.c 等。


C语言文件内容的一般规则

1、每个头文件和源文件的头部必须包含文件头部说明和修改记录。
源文件和头文件的头部说明必须包含的内容和次序如下:
/************************************************************************
* File Name : FN_FileName.c/ FN_FileName.h
* Copyright : 2003-2008 XXXX Corporation, All Rights Reserved.
* Module Name : Draw Engine/Display
*
* CPU : ARM7
* RTOS : Tron
*
* Create Date : 2008/10/01
* Author/Corporation : WhoAmI/your company name
**
Abstract Description : Place some description here.
**
-----------------------Revision History---------------------------------
* No Version Date Revised By Item Description
* 1 V0.95 08.05.18 WhoAmI abcdefghijklm WhatUDo
*
************************************************************************/

2、各个源文件必须有一个头文件说明,头文件各部分的书写顺序下:

其中Multi-Include-Prevent Section 是用来防止头文件被重复包含的。如下例:
   #ifndef __FN_FILENAME_H
   #define __FN_FILENAME_H
   #endif
其中“FN_FILENAME”一般为本头文件名大写,这样可以有效避免重复,因为同一工程中不可能存在两个同名的头文件。
/************************************************************************
* File Name : FN_FileName.h
* Copyright : 2003-2008 XXXX Corporation, All Rights Reserved.
* Module Name : Draw Engine/Display
*
* CPU : ARM7
* RTOS : Tron
*
* Create Date : 2008/10/01
* Author/Corporation : WhoAmI/your company name
**
Abstract Description : Place some description here.
**
----------------------------------------Revision History---------------------------------
* No Version Date Revised By Item Description
* 1 V0.95 08.05.18 WhoAmI abcdefghijklm WhatUDo
*
************************************************************************/
/************************************************************************
* Multi-Include-Prevent Section
************************************************************************/
#ifndef __FN_FILENAME_H
#define __FN_FILENAME_H
/************************************************************************
* Debug switch Section
************************************************************************/
#define D_DISP_BASE
/************************************************************************
* Include File Section
************************************************************************/
#include "IncFile.h"
/************************************************************************
* Macro Define Section
************************************************************************/
#define MAX_TIMER_OUT (4)
/************************************************************************
* Struct Define Section
************************************************************************/
typedef struct CM_RadiationDose
{
unsigned char ucCtgID;
char cPatId_a[MAX_PATI_LEN];
}CM_RadiationDose_st, *CM_RadiationDose_pst;
/************************************************************************
* Prototype Declare Section
************************************************************************/
unsigned intMD_guiGetScanTimes(void);
…… #endif

3、源文件各部分的书写顺序如下:
/*************************************************************************
* File Name : FN_FileName.c
* Copyright : 2003-2008 XXXX Corporation, All Rights Reserved.
* Module Name : Draw Engine/Display
*
* CPU : ARM7
* RTOS : Tron
*
* Create Date : 2003/10/01
* Author/Corporation : WhoAmI/your company name
**
Abstract Description : Place some description here.
**
-----------------------Revision History---------------------------------
* No Version Date Revised By Item Description
* 1 V0.95 00.05.18 WhoAmI abcdefghijklm WhatUDo
*
************************************************************************/
/************************************************************************
* Debug switch Section
************************************************************************/
#define D_DISP_BASE
/************************************************************************
* Include File Section
************************************************************************/
#include "IncFile.h"
/************************************************************************
* Macro Define Section
************************************************************************/
#define MAX_TIMER_OUT (4)
/************************************************************************
* Struct Define Section
************************************************************************/
typedef struct CM_RadiationDose
{
unsigned char ucCtgID;
char cPatId_a[MAX_PATI_LEN];
}CM_RadiationDose_st, *pCM_RadiationDose_st;
/************************************************************************
* Prototype Declare Section
************************************************************************/
unsigned int MD_guiGetScanTimes(void);
/************************************************************************
* Global Variable Declare Section
************************************************************************/
extern unsigned int MD_guiHoldBreathStatus;
/************************************************************************
* File Static Variable Define Section
************************************************************************/
static unsigned int nuiNaviSysStatus;
/************************************************************************
* Function Define Section
************************************************************************/

4、需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POJ 1187 陨石的秘密 (线性DP)

题意: 公元11380年,一颗巨大的陨石坠落在南极。于是,灾难降临了,地球上出现了一系列反常的现象。当人们焦急万分的时候,一支中国科学家组成的南极考察队赶到了出事地点。经过一番侦察,科学家们发现陨石上刻…

bzoj2561 最小生成树

题意:给你无向图,给定一条边,求至少在原图中删去多少边才能使它同时在某个最大生成树和某个最小生成树中。 解: 假装我们把边排序了,然后把所有边权小于给定边的边都加进去了。 那么我们要删的就是s到t的一个割。 最大…

Android应用开发—onSaveInstanceState方法什么时候被调用?

转载自onSaveInstanceState方法什么时候被调用?(转载/整理) 在 Activity 被销毁之前被调用来保存每个实例的状态,这样就可以保证该状态能够从 onCreate(Bundle) 或者onRestoreInstanceState(Bundle)恢复过来。 本方法在 Activity 可能被销毁…

记一次phpstudy重启后Apache无法启动

相信大家都碰到过phpstudy中Apache无法启动的情况1、首先检查80端口是否占用,有的话就管理2、检查是否缺少vc9运行文件如果上述两种方法还不能解决问题就进入安装目录中Apache的bin目录下,在命令行窗口中执行httpd.exe,看看是否报错。我就是在…

C#任务调度——LimitedConcurrencyLevelTaskScheduler

这是参考大佬分享的代码写的有问题请提出指正,谢谢。using Serilog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks;namespace TaskManager {class TaskFactoryMa…

同步本地远程分支 git remote prune origin

git remote prune origin (不常用总忘记,记录下)

264 参考帧 list0 list1

作了这么久的h264工作,这部分还一直从未去深入了解过,真是不求甚解啊,那帮老外的代码也写得太全了,该部分至今天才开始研究 首先参考帧这里关注的是两种,p ,b ,前向参考和后向参考 由白皮书中看到,p帧的参…

面试官问我:什么是JavaScript闭包,我该如何回答

闭包,有人说它是一种设计理念,有人说所有的函数都是闭包。到底什么是闭包?这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。这个问题也有很多朋友在公众号给李老师留言了,问题表…

robotframework基础学习(8)

变量的使用 在 Edit 标签页中主要分:加载外部文件、定义内部变量、定义元数据等三个部分。 (1):加载外部文件Add Library:加载测试库,主要是[PYTHON 目录]\Lib\site-packages 里的测试库 Add Resource&…

版本字符串比较工具接口常用接口函数

版本升级比较常用的接口,字符串解析,不是很难,但没必须重复造轮子,保存一份网上搜到的实现: /*** 比较版本号的大小,前者大则返回一个正数,后者大返回一个负数,相等则返回0** param version1* param version2* return…

[蓝桥杯]ALGO-188.算法训练_P0504

Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,Unclear和Nuclear、Rimon和MinOR都是Anagrams。编写一个程序,输入两个单词&#xff0…

什么是3-2混合

正如上面所述,电影转换成视频时,每秒24帧必须转成每秒60场(30帧)。实现这一点的方法是把电影的第一帧显示3场,然后把第二帧显示2场,再把第三帧显示3场,以此类推。这个3-2-3-2-3-2的顺序就被称为…

shell 的here document 用法、输入/输出重定向

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 什么是Here Document Here Document 是在Linux Shell 中的一种特殊的重定向方式&#xff0c;它的基本的形式如下 cmd << delimiter…

beta第二天

团队成员 郑西坤 031602542 &#xff08;队长&#xff09; 陈俊杰 031602504陈顺兴 031602505张胜男 031602540廖钰萍 031602323雷光游 031602319吴志鸿 0316206341.昨天的困难 陈顺兴&#xff1a;无 廖钰萍&#xff1a;无 吴志鸿&#xff1a;没有 雷光游&#xff1a;无 郑西坤…

void和void *

void f(void) { // 参数void可以省略cout << "aa"<<endl; } int t 22; int *a &t; void *p; // void *可以被赋值为其他类型 p a; cout << *(int *)p; // 使用的时候必须转到那个类型 转载于:https://www.cnblogs.com/pjishu/p/10343587.…

Android应用开发—Application

What is Application Application和Activity&#xff0c;Service一样是android框架的一个系统组件&#xff0c;当android程序启动时系统会创建一个application对象&#xff0c;用来存储系统的一些信息。通常我们是不需要指定一个Application的&#xff0c;这时系统会自动帮我们…

C语言符号

C语言运算符的优先级 一、运算符的优先级表 C 语言的符号众多&#xff0c;由这些符号又组合成了各种各样的运算符。既然是运算符就一定有其特定的优先级&#xff0c;下表就是C 语言运算符的优先级表&#xff1a; 注&#xff1a;同一优先级的运算符&#xff0c;运算次序由结合…

手机按键中控运行思路的个人理解

目前而言基本的自己理解的中控多线程脚本无非就是两种1.主代码作为脚本功能的载体 另外开辟一个线程作为和中控保持联系的部分(下面只是思路 无法直接运行)Import "zm.luae" zm.Init /* 该思路下的基本流程 从UI界面获取到云账号 和 本地的配置信息---->根据自己…

burp过期了,换一个

先从吾爱破解论坛下载工具&#xff1a;https://down.52pojie.cn/Tools/Network_Analyzer/Burp_Suite_Pro_v1.7.37_Loader_Keygen.zip 工具运行需要Java环境&#xff0c;请自行安装&#xff0c;此处不赘述。解压完后双击keygen 填一下License Text(随意)&#xff0c;然后点击Run…

加载一张图片到ImageView到底占据多少内存

https://blog.csdn.net/BUG_delete/article/details/79557939 简介 Android中经常要通过ImageView进行图片资源显示。在加载图片时&#xff0c;首先要考虑的两个因素就是体验问题和性能问题。 其中&#xff0c;体验问题是指图片显示的是否正确&#xff08;例如Universal-Imag…