C/C++规范学习:
一 关于浮点数:
1.1浮点数是否等于0判断:因为浮点数都有精度,不能拿浮点数直接和0.0f进行比较,而应该采用以下方法:
if (f32Data == 0.0f) // 隐含错误的比较
#define AFX_F32_EPSINON 1.0e-6 //全局 f32的浮点数精度
#define AFX_F64_EPSINON 1.0e-14 //全局 f32的浮点数精度
#define AFX_F32_IS_ZERO(f32Data) ((f32Data >=- AFX_F32_EPSINON) \
&& (f32Data <= AFX_F32_EPSINON))
#define AFX_F64_IS_ZERO(f64Data) ((f32Data >=- AFX_F64_EPSINON) \
&& (f32Data <= AFX_F64_EPSINON))
使用时: if(AFX_F32_IS_ZERO(f32Data))
{ }
1.2浮点数避免除法运算,应该尽量转为乘法或其它方法:R=周长/2PI;
#define PAI_RECIPROCAL (1 / 3.1416 ) // 编译器编译时,将生成具体浮点数
f32Radius = f32CircleLength * PAI_RECIPROCAL / 2;
二 程序的优化:
2.1 一个学生的结构体包含姓名 年龄 班级 各科成绩;可以将各科成绩单独设置一个结构体,然后和学成基本信息结构体之间通过一个索引(主键)建立关系,这样在不需要成绩时就不用定义很大的浮点数据类型。
三函数:
3.1若函数不写返回值,默认是整形的,而不是VOID;尽量为函数定义返回值虽然有时候用不上,但大多数场合费用有用:可以作为右值赋值或者判断。
四 指针:指针数组(存放指针的数组)、数组指针(指向数组的指针)、常量指针与指针常量、this指针:
先从变量名开始读,然后看变量名紧跟的运算符的优先级,即可完成解读。https://www.cnblogs.com/yangguang-it/p/6394332.html
4.1
C/C++规范学习:的更多相关文章
- 公司C++规范学习
目录 公司C++规范学习 语法部分 风格/约定 公司C++规范学习 语法部分 class和struct关键字的选择:class表示被封装的用户自定义类型,不公开定义非静态数据成员,struct表示数据 ...
- 阿里java开发规范学习(附P3C IDEA插件 帮助规范的养成)
浅析 阿里巴巴 Java 开发规约 (未完成) 更加优秀的页面展现请到浅析 阿里巴巴 Java 开发规约 contents 为什么要学 编程规约 P3C IDEA 插件 why-use 我们知道,一般 ...
- W3C规范学习
w3c:万维网联盟(World Wide Web Consortium,W3C),又称W3C理事会.W3C组织是对网络标准制定的一个非赢利组织,W3C是万维网联盟的缩写,像HTML.XHTML.CSS ...
- NFC规范学习之一 ---整体结构
1.NFC 采用两个感应线圈进行数据交互,其中至少必须有一个设备产生13.56MHZ的磁场,该场被调制以方便数据传输.通讯中,一个设备处于initiator模式(就是发起通讯)另外一个设备则工作在ta ...
- AMD规范学习笔记
背景 NodeJS的一套比较简洁 Moudles 规范, 使得在服务器端的模块化变得更加简单.很长一段时间,很多公司或者项目都有自己的一套模块化机制, 却未能形成一套统一的标准, NodeJS的Mou ...
- SpringCloud入门之YAML格式文件规范学习
1. 认识 YAML YAML(发音 /ˈjæməl/)是一个类似 XML.JSON 的数据序列化语言.其强调以数据为中心,旨在方便人类使用:并且适用于日常常见任务的现代编程语言.因而 YAML 本身 ...
- Web Components 规范学习
最新的规范在这里:http://w3c.github.io/webcomponents/explainer/ 依据规范,有以下四个组成部分: Templates Custom Elements Sha ...
- PSR规范学习笔记
PSR已经经历了5次变革,如今PSR4就是最新的标准,但是还是有必要了解下5个版本的内容的,于是去php-fig网站看了下英文原版: 大概看了遍,发现这规范很多的必须很多时候只是建议,但是PHP解析器 ...
- JSR133规范学习
最近在看多线程相关的东西,通过阅读JSR133的faq来加深自己对多线程的理解,里面大部分的内容比较简单(越到后面越难),但是有的部分比较难以理解还没有完全弄懂,所以这里只记录了一下比较简单的阅读笔记 ...
- Promise/A+规范学习总结
Promise的实现:因为他只是一个规范,所以在不同的框架或者平台下有不同的实现 Angular:$q服务 Node:q模块,co,then Es6:Promise, yield Es7:async ...
随机推荐
- JWT(JSON WEB TOKEN) / oauth2 / SSL
1: JWT: 为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景.JWT的声明一般被 ...
- ES6学习之Async函数
定义:Async函数是一个异步操作函数,本质上,Async函数是Generator函数的语法糖.async函数就是将 Generator 函数的星号(*)替换成async,将yield替换成await ...
- Dialog 自定义使用2(进度条)
1: 自定义的Dialog 代码: public class IphoneProgersssDialog extends Dialog { private Context context; priv ...
- CentOS 6.5 and Ubuntu 14.04 使用外部邮箱发送邮件
我们可以使用外部邮箱(163,126,gmail,139等等)为我们发邮件 for CentOS 6.5 yum -y install mailx vi /etc/mail.rc 在文件的末行添加以下 ...
- windows 服务器安装python及其基本库
步骤如下: 一.安装python软件: 1.进入windows服务器,从网址下载 python-3.5.4-amd64软件 到桌面: 2.在软件点右键,再“”以管理员身份运行“”,输入管理员密码: 3 ...
- JSK 糟糕的bug
传送门 题目居然复制不了(QAQ) 分析 TrieJSK已经2比较详细了,就不再单独写博客了,此题相较于Trie模板有一点不同,此题要求比较前缀却没有规定前面是后面的前缀还是后面是前面的前缀,所以我们 ...
- Struts2学习第五课 通过和ServletAPI耦合的方式获取WEB资源
与Servlet耦合的访问方式 直接访问Servlet API将使Action与环境Servlet环境耦合在一起,测试时需要有Servlet容器,不便对Action的单元测试. 直接获取HttpSer ...
- Gulp的学习和使用
Gulp是一种直观.自动化构建的工具. Gulp是基于Node和NPM,安装教程点这里. 什么是Gulp? Gulp使用了node.js的流控制系统,使其(Gulp)构建更快,因为它不需要将临时文件/ ...
- 会话临时表 ORA-14452
需要使用Oracle的临时表,向其中插入记录,用完后再删除.但是后来发现临时表的删除总是失败,返回错误: ORA-14452: attempt to create, alter or drop an ...
- ps&CPU
#include <pthread.h> void f();int main() { f(); return 0;} void f() { int ...