C语言代码规范(一)缩进与换行

一、缩进的空格数为4个。最好配置代码编辑器将TAB键设置为空格替换,避免出现另一个编辑器打开时格式变乱的情况。

例如Notepad++设置

KEIL设置

二、“{” 和 “}”各自独占一行。

    不规范例子:

for(i = 0; i < student_num; i++)
{   if((score[i] >= 0) && (score[i]) <= 100)total_score += score[i];elseprintf(" error! score[%d] = %d\n", i, score[i]);
}

    其中if应该换行,让“{”独占一行。

    规范的例子:

for(i = 0; i < student_num; i++)
{	if((score[i] >= 0) && (score[i]) <= 100){total_score += score[i];}else{printf(" error! score[%d] = %d\n", i, score[i]);}
}

   

三、 当if的判断和执行句子较短时,也需要换行。

    不规范如下格式:

if(student_num > 100)i = 0;

    规范示例:

if(student_num > 100)
{i = 0;
}

四、if判断内容较长,可以考虑换行提高可阅读性

    不规范例子:

if((print_montion[0]!=SYS_PARAM.Motor_PARAM[0].Set_Speed)||(print_montion[1]!=SYS_PARAM.Motor_PARAM[1].Set_Speed))
if((M_rise && M_rise_temp)||(M_stretch && M_stretch_temp)||(M_revolve && M_revolve_temp))break;

    规范示例:

if( (print_montion[0] != SYS_PARAM.Motor_PARAM[0].Set_Speed) ||(print_montion[1] != SYS_PARAM.Motor_PARAM[1].Set_Speed) )
if( (M_rise    && M_rise_temp) ||(M_stretch && M_stretch_temp) ||(M_revolve && M_revolve_temp) )
{break;
}

    换行后也要注意缩进对齐,使得排版整洁。

五、switch-case语句标准格式

    规范示例:

switch(variable)
{case value1:...break;case value2:...break;...default:...break;
}

六、if、for、do、while、case、switch、default语句独占一行,且if、for、do、while语句的执行语句部分无论多少都要加大括号"{}"。

七、严禁横向代码!!!

不规范示例:

if ( M_rise )   {EN_s = Enable; TIM_CCxNCmd(TIM1,TIM_Channel_1, ENABLE); }
if ( M_stretch ){EN_q = Enable; TIM_CCxNCmd(TIM1,TIM_Channel_2, ENABLE); }
if ( M_revolve ){EN_x = Enable; TIM_CCxNCmd(TIM1,TIM_Channel_3, ENABLE); }

修改:(这里的例子命名不规范,大家不要学)

	if(M_rise){EN_s = Enable; TIM_CCxNCmd(TIM1, TIM_Channel_1, ENABLE); } if(M_stretch){EN_q = Enable; TIM_CCxNCmd(TIM1, TIM_Channel_2, ENABLE); } if(M_revolve){EN_x = Enable; TIM_CCxNCmd(TIM1, TIM_Channel_3, ENABLE); } 

不要非主流自创风格,记住代码是给别人读的!

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

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

相关文章

armv7 cortex a系列编程手册_AWTK能为现代GUI编程带来何种改变?

AWTK是一个伸缩性极强的嵌入式图形框架&#xff0c;它的诞生会给GUI编程研发工程师带来哪些改变&#xff1f;AWTK是一个伸缩性极强的嵌入式图形框架&#xff0c;可在Cortex-M3这样低端的单片机上运行&#xff0c;也可以在Cortex-A7/A8/A9等处理器&#xff0c;甚至DSP以及X86处理…

【转】各种概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB

POJO&#xff08;pure old java object&#xff09; 是普通java类&#xff0c;有一些private的参数作为对象的属性&#xff0c;然后针对每一个参数定义get和set方法访问的接口。我看到这个定义&#xff0c;心里就有个疑问了&#xff0c;这个POJO跟JavaBean的定义怎么就这么像&a…

为什么要编写单元测试–测试技巧8

我对最近在“您应该测试什么”上的博客有很多反应&#xff0c;有些人出于各种原因同意我的想法&#xff0c;另一些人则认为建议某些类可能不需要单元测试是非常危险的。 已经处理了什么测试&#xff0c;今天的博客涉及为什么要编写单元测试&#xff0c;而今天的示例代码是基于一…

Git迁移 从SVN到Git

Migrating from SVN to Git 首先我们需要在Stach或者GitHub上新建一个Repository, 拿到它的URL。 接下来参照如下步骤 : At first we should create a new git repository at Stash and get the repository URL, and then follow below steps: 1. 切换到本地git工作目录 chang…

C语言代码规范(二)空格

一、逗号, 之后加空格 printf("error! score[%d] %d\n", i, score[i]); 二、分号; 之后加空格 for(i 0; i < student_num; i) 三、关系运算符<、<、>、>、、! 前后加空格 if( (score[i] > 0) && (score[i] < 100) ) 四、赋值运算符…

c++ 多重背包状态转移方程_动态规划入门——详解经典问题零一背包

本文始发于个人公众号&#xff1a;TechFlow&#xff0c;原创不易&#xff0c;求个关注今天是周三算法与数据结构专题的第12篇文章&#xff0c;动态规划之零一背包问题。在之前的文章当中&#xff0c;我们一起探讨了二分、贪心、排序和搜索算法&#xff0c;今天我们来看另一个非…

Discuz! 的编码规范

前言 本规范由编程原则组成&#xff0c;融合并提炼了开发人员长时间积累下来的成熟经验&#xff0c;意在帮助形成良好一致的编程风格。适用范围 如无特殊说明&#xff0c;以下规则要求完全适用于Discuz!项目&#xff0c;同时也可大部分适用于COMSENZ旗下其他PHP项目。标准化的重…

C语言代码规范(三)if语句

一、整型变量与0比较 许多人为了一时之便&#xff0c;模仿布尔变量风格写为如下代码 if(value) {... }if(!value) {... } 应当用 或 ! 来与0比较 if(0 value) {... }if(0 ! value) {... } 二、当if内的语句是与常量进行比较时&#xff0c;常量为左值&#xff0c;变量为右…

6月24 面向对象的设计原则-----工厂模式和单列模式

工厂模式&#xff1a; 工厂模式就是专门负责将大量有共同接口的类实例化&#xff0c;而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口&#xff0c;由子类决定实例化哪一个类。 工厂模式相当于创建实例对象的new&#xff0c;经常要根据类Class生成…

LeetCode Subsets

原题链接在这里&#xff1a;https://leetcode.com/problems/subsets/ 题目&#xff1a; Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must be in non-descending order.The solution set must not contain duplicate su…

使用ThreadPoolExecutor并行化独立的单线程任务

Java SE 5.0中引入的任务执行框架是简化多线程应用程序的设计和开发的巨大飞跃。 该框架提供了用于管理任务概念&#xff0c;管理线程生命周期及其执行策略的工具。 在此博客文章中&#xff0c;我们将描述该框架的功能&#xff0c;灵活性和简单性&#xff0c;以展示一个简单的用…

python定义一个圆_Python-矩形和圆形

原博文 2019-11-11 12:34 − Exercise 15.1. 定义一个叫做Circle 类&#xff0c;类的属性是圆心 (center) 和半径 (radius) , 其中&#xff0c;圆心 (center) 是一个 Point 类&#xff0c;而半径 (radius) 是一个数字。 实例化一个圆心 (center) 为 (150, 100) &#xff0c;半…

C语言代码规范(四)命名规则

一、宏定义全部字母大写&#xff0c;单词间下划线间隔 #define FLASH_PAGE_SIZE 256 #define FLASH_SECTOR_SIZE (4 * 1024) #define FLASH_BLOCK_SIZE (64 * 1024) #define FLASH_SIZE (16 * 1024 * 1024) 二、const修饰的常量全部字母大写&#xff0c;单词间…

Forbidden You don't have permission to access / on this server PHP

Forbidden You dont have permission to access / on this server PHP 在新安装的谷歌游览器里&#xff0c;打不了PHP网站了&#xff0c;错误显示&#xff1a; Forbidden You dont have permission to access / on this server. 原因还是配置权限问题 解决办法&#xff1a; wa…

Spring 3.1和JPA的持久层

1.概述 本教程显示了如何使用Hibernate作为持久性提供程序使用JPA设置Spring 。 有关使用基于Java的配置和项目的基本Maven pom设置Spring上下文的分步介绍&#xff0c;请参阅本文 。 2. Java的JPA Spring配置 要在Spring项目中使用JPA&#xff0c; 需要设置EntityManager 。…

150928错误认识

1. $arr array(); foreach ($re as $k>$v){  $arr[] $v[updatetime];} $arr的返回结果为&#xff1a; Array ([0] > 2014-09[1] > 2015-04[2] > 2015-09 )$arr array(); foreach ($re as $k>$v){  $arr[$k] $v[updatetime];} $arr的返回结果为&#xff…

STM32F1笔记(一)GPIO输出

GPIO&#xff1a;General Purpose Input Output &#xff08;通用输入/输出&#xff09;。 GPIO最经典应用&#xff1a;LED灯。 先看电路。声明&#xff1a;参考正点原子战舰开发板。 与LED串联的电阻称为限流电阻。 限流电阻计算公式&#xff1a;R(U-LED压降)/20ma。 U为LE…

dataframe转化为array_【Python专栏】12 种高效 Numpy 和 Pandas 函数为你加速分析

来源&#xff1a;机器之心编译&#xff1a;Jamin、杜伟、张倩我们都知道&#xff0c;Numpy 是 Python 环境下的扩展程序库&#xff0c;支持大量的维度数组和矩阵运算&#xff1b;Pandas 也是 Python 环境下的数据操作和分析软件包&#xff0c;以及强大的数据分析库。二者在日常…

具有GlassFish和一致性的高性能JPA –第1部分

您以前听说过连贯性吗&#xff1f; 大概是。 它是那些著名的内存网格解决方案之一&#xff0c;该解决方案承诺了超快的数据访问速度和对经常使用的数据的无限空间。 一些众所周知的竞争对手是Infinispan &#xff0c; Memcached和Terracotta Ehcache 。 它们都很棒&#xff0c;…

如何在自己的代码中实现分享视频文件或者是图片文件到微信 QQ微博 新浪微博等!!!...

首先在文档第一句我先自嘲下 &#xff0c; 我是大傻逼&#xff0c; 弄了两天微信是视频分享&#xff0c;一直被说为啥跟系统的相册分享的不一样&#xff0c;尼玛&#xff01;&#xff01;&#xff01; 这里来说正文&#xff0c;我这里不像多少太多&#xff0c;大家都是程序猿&a…