当前位置: 首页 > wzjs >正文

深圳建站公司设计深业集团云南招聘网

深圳建站公司设计深业集团,云南招聘网,网站备案背景幕布打印多大,html网页作业背景 接之前 blog 53、【OS】【Nuttx】编码规范解读(一) 54、【OS】【Nuttx】编码规范解读(二) 55、【OS】【Nuttx】编码规范解读(三) 56、【OS】【Nuttx】编码规范解读(四) 57、【…

背景

接之前 blog
53、【OS】【Nuttx】编码规范解读(一)
54、【OS】【Nuttx】编码规范解读(二)
55、【OS】【Nuttx】编码规范解读(三)
56、【OS】【Nuttx】编码规范解读(四)
57、【OS】【Nuttx】编码规范解读(五)
58、【OS】【Nuttx】编码规范解读(六)
分析了行宽格式,注释要求,花(圆)括号风格,全局变量,结构体,宏定义等,下面继续来分析上次没分析完的结构体

Nuttx 编码规范

指针变量

指针命名

在这里插入图片描述

  • 指针与其它类型变量命名规则相同,比如变量名全小写,减少使用下划线 _
  • 可以加前缀 p(单级指针)或 pp(指向指针的指针),但不推荐,除非指针和其他非指针变量可能会混淆

空格

在这里插入图片描述
在声明指针时,星号 * 紧跟变量名,和类型名之间有个空格,示例如下
在这里插入图片描述

修饰词

在这里插入图片描述
有些架构会要求对指针用修饰词进行限定,来明确指向的内存区域,比如将数据存储和代码存储分开,或者用不同大小的指针来访问不同的内存段
Nuttx 在 include/nuttx/compiler.h 文件中有宏定义来支持这些限定修饰词
在这里插入图片描述
从宏定义可见,这些修饰词都是空的,代码运行时不起任何作用,主要就是给开发人员看,用于区分指针指向的内存区域

  • FAR:用于指向位于栈、堆、.bss 或.data 段的数据指针
  • NEAR:用的很少,先不关注
  • DSEG:用的很少,先不关注
  • CODE:用于指向函数或代码段的指针

初始化

在这里插入图片描述
主要强调初始化要遵循 C89 标准的兼容性要求,比如不允许使用命名初始化和数组指定位置初始化,这些都是C99引入的功能,不符合C89标准

C89 初始化风格

结构体和数组的初始化必须按照成员或元素的声明顺序进行,且每个初始值都必须显式列出

// C89 风格的结构体初始化
struct Point {int x;int y;
};struct Point origin = {0, 0};  // 使用顺序初始化// C89 风格的数组初始化
int numbers[5] = {1, 2, 3, 4, 5};

C99 初始化风格

C99 引入了一些更灵活的初始化方式,如

  • 命名初始化:可以通过成员名称来初始化结构体或联合体中的特定字段,而不需要按照声明顺序
struct Point origin = {.y = 1, .x = 2};  // 按名称初始化,不符合 C89
  • 指定位置的数组初始化:可以通过索引来初始化数组中的特定元素,未初始化的元素被自动设为 0
int numbers[5] = {[0] = 1, [2] = 3};  // 指定位置初始化,不符合 C89

函数

函数头

在这里插入图片描述

注释结构

函数前面都有一个函数头注释,这是一个块注释,该注释有特定的格式要求,确保代码的一致性:

  • 注释开始行:以 /* 开头,位于第 1 列,紧接一系列星号 *,延伸到行末 78 列
  • 注释结束行:从第 2 列开始,有一系列星号* ,延伸到行尾 77 列,在第 78 列放置闭合注释符号 */
  • 信息行:第 1 列空格,第 2 列星号 *,第 3 列空格开始,后面包含关于函数的信息
  • 前后空白行:函数头注释前有一个空白行,函数头注释后也有一个空白行,然后是函数定义
注释内容

函数头注释内容包含如下部分,每个部分间用单行 * 分隔

  • Name:后面跟函数名,在同一行
  • Description:函数描述内容从第二行开始。每行描述缩进两个额外的空格
  • Input Parameters:输入参数描述从第二行开始,输入参数从分隔行开始,并缩进两个额外的空格,描述包括参数名,参数简述
  • Returned Value:返回值描述从第二行开始,标识可能返回的所有错误值
  • Assumptions/Limitations:使用函数时需要注意的附加信息,可选内容

示例如下:

/** *************************************************************************************** Name: myFunction** Description:*   This function does something very important.*   It takes two parameters and returns a result based on those inputs.** Input Parameters:*   param1 - The first parameter is an integer that represents...*   param2 - The second parameter is a pointer to a structure that contains...** Returned Value:*   ERR_INVAL: Invalid input parameters.*   ERR_NOMEM: Memory allocation failed.** Assumptions/Limitations:*   This function assumes that the system has enough memory to allocate for its operations.* **************************************************************************************/
http://www.dtcms.com/wzjs/827130.html

相关文章:

  • 公司网站打不开怎么办电子产品网站建设 实训报告
  • 销售网站开发的背景网站开发合同范本
  • 重庆公司免费网站建设金昌北京网站建设
  • 怎么做服务器网站吗wordpress 汽车模板
  • 网站策划编辑是干嘛的四川省建设建设监理协会网站
  • 行业型网站开发app软件商店
  • 网站管理员可控的关键节点临海市建设规划局网站
  • 贵安新区住房和城乡建设厅网站本网站建设中
  • 免费找客户的网站对网页设计的简单理解
  • 新营销平台电商网站nas wordpress 外网访问
  • 下拉网站导航用ps怎么做页游和做网站
  • 阿里云建设网站百度网盘优化
  • 南宁市网站高性能网站建设进阶指南
  • vps绑定多个网站app推广兼职
  • 企业把网站关闭原因dw2020网页设计教程
  • 婚庆设计图网站网页qq邮箱怎么取消自动登录
  • 东莞网站推广营销网站设计做网站 挣广告联盟的佣金
  • 网站关键词指数查询工具什么是seo技术
  • 谷歌网站优化工具wordpress重写
  • 临海网站制作网站建设运营工作业绩
  • 怎么查网站icp备案网站修改域名
  • 如何添加网站 ico图标前端做项目网站
  • 网站代运营什么是网站建设与管理
  • 邢台做网站公司wap网站建设哪家好
  • 佛山网站建设的品牌中国制造网外贸平台多少钱
  • 世界购物网站排名域名网站备案管理系统
  • asp个人网站源码网站开发多语言
  • tornado 网站开发制作一个网页游戏需要多少钱
  • 杭州网站推广怎样做海西高端网站建设
  • 广告公司网站wordpress文章相关文章