C语言——项目规范

C语言——项目规范


宗旨:技术的学习是有限的,分享的精神是无限的。


//基本原则

1、尽量少使用全局变量,或者说禁止使用全局变量;

2、实在要在其他文件使用本文件中的变量,以函数接口返回其值,在其他文件中直接调用该接口;

3、变量尽量存放到结构体里面,并以static加以限定;

4、只在本地用的函数,在前面加上static,使其在本文件中生效,函数名使用小写加下划线的方式命名;

5、对内接口,函数名小写加下划线分割 --  accel_moving_detect;对外接口,函数名首单词大写不加下划线 -- UlartInit;

6、单个函数用到的静态变量定义在函数体内,常见于 protothread 状态机函数;

7、只读型变量定义为const;

8、条件编译宏定义以CONFIG_开头;

9、首先定义静态变量,然后空一行,再定义局部变量,然后空一行,再写函数实现代码;

10、一个.c文件对应一个.h文件等等;

 

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

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

相关文章

折半查找判定树及平均查找长度

折半查找判定树及平均查找长度 从折半查找的过程看,以有序表的中间记录作为比较对象,并以中间记录将表分割为两个子表,对子表继续上述操作。所以,对表中每个记录的查找过程,可用二叉树来描述,二叉树中的每个…

华为开始对嵌入式开发者下手了!

5G时代到来,物联网技术的应用也离我们越来越近。智慧交通、智能家庭、智慧园区,越来越多的融入到我们的生活当中。作为物联网重要技术组成的嵌入式系统,嵌入式系统视角有助于深刻地、全面地理解物联网的本质。而物联网是通用计算机的互联网与…

慎用Hyper-Threading Technology

今天,一个同事遇到了一个非常奇怪的问题,他的程序(C#)运用了Hyper-Threading技术,系统用的是Windows 2000 SP4,当程序运行时会随机的抛出一个异常,而且这个bug很不容易reproduce,最后…

BZOJ1876 [SDOI2009]SuperGCD 【高精 + GCD优化】

题目 Sheng bill有着惊人的心算能力,甚至能用大脑计算出两个巨大的数的GCD(最大公约 数)!因此他经常和别人比 赛计算GCD。有一天Sheng bill很嚣张地找到了你,并要求和你比 赛,但是输给Sheng bill岂不是很丢…

二叉排序树和平衡二叉排序树

二叉排序树又称为二叉查找树,它是一颗特殊的二叉树。(空树) 性质:1、若它的左子树非空,则左子树上的所有结点的值均小于根结点的值。 2、若它的右子树非空,则右子树上的所有结点的值均大于根结点的值。 3、…

C语言九阳神功

C语言笔记(九阳神功) 宗旨:技术的学习是有限的,分享的精神是无限的。 1.static的作用: (1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区&…

FUSE文件系统

Fuse(filesystem in userspace),是一个用户空间的文件系统。通过fuse内核模块的支持,开发者只需要根据fuse提供的接口实现具体的文件操作就可以实现一个文件系统。由于其主要实现代码位于用户空间中,而不需要重新编译内核,这给开发者带来了众…

myeclipse试用小记----Hibernate多对一双向关联(2)

myeclipse试用小记----Hibernate多对一双向关联(2)在上篇文章“myeclipse试用小记----Hibernate多对一单向关联(1)”中,讲到了“Hibernate多对一单向关联”,现在我打算把这个做成双向的,也就是多…

Python的程序结构[4] - 函数/Function[2] - 匿名函数

匿名函数 / Anonymous Function 匿名函数是一种不需要绑定函数名的函数 (i.e. functions that are not bound to a name)。匿名函数通过 lambda 表达式进行构建。常用于快速建立起一个(一次性的)函数。 Note: lambda 是 Python 的一个表达式/关键字,类似 return&…

数组 的地址计算

数组是一个特殊的数据结构,数组的基本操作不涉及数组结构的变化,因此对于数组而言,采用顺序存储表示比较合适。数组的顺序存储结构有两种:一、以行序存储,如高级语言BASIC、COBOL、Pascal、c语言。二、以列序存储&…

你会选择深圳还是佛山?

最近是校招季节,有很多人在询问offer的问题,我知道我已经发了很多这样相关的文章,可能大家看着都有点不耐烦了,不过还是想说,人生重要的选择真的没有几个,我每次回答都特别慎重,我有时候发出来也…

盗版XP变正版

此帖为转贴!经本人测试100%成功,谨以此帖献给各位目前不能更新的猫们,免得四处搜寻,徒劳无功!一、经过无数次验证,本方法绝对有效!敬请一试!!1。点击开始栏→…

区间K大数查询

给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K&a…

optimizer

在很多机器学习和深度学习的应用中,我们发现用的最多的优化器是 Adam,为什么呢? 下面是 TensorFlow 中的优化器, https://www.tensorflow.org/api_guides/python/train 在 keras 中也有 SGD,RMSprop,Adagr…

【漫画】25岁程序员 VS 35岁程序员,塑造自己的不可替代性,才能让自己更有价值 ​...

其中的酸甜苦辣你中了几条经常有人说:35岁是程序员的魔咒。但其实相比于刚毕业的年轻人,虽然35岁的程序员从精力上和年龄上都不再占有优势,但十几年的沉淀所造就的从容也是这个年龄段所独有的。当然,也不只是程序员,任…

C语言——内存管理

C语言——内存管理 宗旨:技术的学习是有限的,分享的精神是无限的。 //变量的存储布局(伴随初级程序员和高级工程师一生的) 静态区:全局变量和static变量,初始化的全局变量和静态变量放在一块区域&#xf…

WIN命令

azman.msc--授权管理器admgmt.msc--ad管理calc-----------启动计算器certmgr.msc--证书-当前用户certtmpl.msc--证书模板 compmgmt.msc---计算机管理conf-------启动netmeetingcys--配置您的服务器dcomcnfg.exe--组件服务dcpol.msc--域控制器策略 filesvr.msc--文件…

拦截导弹

拦截导弹 时间限制:3000 ms | 内存限制:65535 KB难度:3描述某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发…

C标准库

嘤嘤嘤,C标准库,我来了转载于:https://www.cnblogs.com/Fsiswo/p/8116331.html

你确定你会使用git commit?

我记得刚工作的时候,我第一次写git commit的内容,直接上来就是一个git commit -m "加上自己的注释",就这样提交了。后来,我去了中兴,又去了恒大,接触到很多人做项目,发现做项目的时候…