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

新农村建设管理网站企业整站推广

新农村建设管理网站,企业整站推广,在手机上怎么做app软件,建设公司网站方案常用C/C代码规范头文件的保护所有的头文件都应该使用#define来避免多次引用&#xff0c;符号格式为&#xff1a;<PROJECT>_<PATH>_<FILE>_H_例如头文件&#xff1a;foo/src/bar/baz.h#ifndef FOO_BAR_BAZ_H_#define FOO_BAR_BAZ_H_...#endif // FOO_BAR_BAZ_…

常用C/C++代码规范

头文件的保护

所有的头文件都应该使用#define来避免多次引用,符号格式为:<PROJECT>_<PATH>_<FILE>_H_

例如头文件:foo/src/bar/baz.h

#ifndef FOO_BAR_BAZ_H_

#define FOO_BAR_BAZ_H_

...#endif // FOO_BAR_BAZ_H_

头文件引用的顺序

例如在 google-awesome-project/src/foo/internal/http://fooserver.cc 中头文件的引用顺序为:

xxx.h

C 系统文件

C++ 系统文件

其他库的 .h 文件

本项目内 .h 文件

#include "foo/server/fooserver.h" // 源文件对应的头文件

#include "sys/types.h" // C/C++系统标准头文件,更准确地说:带有 .h扩展名的尖括号中的标头

#include "string" // C++ 标准库头文件(无文件扩展名),例如 <algorithm>, <cstddef>

#include "base/basictypes.h"

#include "third_party/absl/flags/flag.h" // 其他库的.h文件

#include "foo/server/bar.h" // 本项目中的其他.h 文件

关键字

关键字是C语言中具有特殊功能的保留标示符,按照功能可分为

1). 数据类型(常用char, short, int, long, unsigned, float, double)

2). 运算和表达式( =, +, -, *, while, do-while, if, goto, switch-case)

3). 数据存储(auto, static, extern,const, register,volatile,restricted),

4). 结构(struct, enum, union,typedef),

5). 位操作和逻辑运算(<<, >>, &, |, ~,^, &&),

6). 预处理(#define, #include, #error,#if...#elif...#else...#endif等),

7). 平台扩展关键字(__asm, __inline,__syscall)

这些关键字共同构成了嵌入式平台的C语法。

嵌入式的应用从逻辑上可以抽象为三个部分:

1). 数据的输入(如传感器,信号,接口输入),

2). 数据的处理(如协议的解码和封包,AD采样值的转换等)

3). 数据的输出(GUI的显示,输出的引脚状态,DA的输出控制电压,PWM波的占空比等),

对于数据的管理就贯穿着整个嵌入式应用的开发,它包含数据类型,存储空间管理,位和逻辑操作,以及数据结构,C语言从语法上支撑上述功能的实现,并提供相应的优化机制,以应对嵌入式下更受限的资源环境。

局部变量

将函数的变量放在尽可能窄的范围内,并在声明中初始化变量。

C++ 允许在函数中的任何位置声明变量。尽可能在本地范围内声明它们,并尽可能接近第一次使用。这使读者更容易找到声明并查看变量是什么类型以及它被初始化为什么。特别是,应该使用初始化而不是声明和赋值,例如:

int i;

i = f(); // Bad -- initialization separate from declaration.

int j = g(); // Good -- declaration has initialization.

std::vector<int> v;

v.push_back(1); // Prefer initializing using brace initialization.

v.push_back(2);

std::vector<int> v = {1, 2}; // Good -- v starts initialized.

注意:如果变量是一个对象,它的构造函数在每次进入作用域并被创建时都会被调用,而它的析构函数在每次超出作用域时都会被调用。

// 低效的实现:

for (int i = 0; i < 1000000; ++i) {

Foo f; // My ctor and dtor get called 1000000 times each.

f.DoSomething(i);

}

// 在循环外的循环中声明这样的变量可能更有效:

Foo f; // My ctor and dtor get called once each.

for (int i = 0; i < 1000000; ++i) {

f.DoSomething(i);

}

数据类型

C语言支持常用的字符型,整型,浮点型变量,有些编译器如keil还扩展支持bit(位)和sfr(寄存器)等数据类型来满足特殊的地址操作。C语言只规定了每种基本数据类型的最小取值范围,因此在不同芯片平台上相同类型可能占用不同长度的存储空间,这就需要在代码实现时考虑后续移植的兼容性,而C语言提供的typedef就是用于处理这种情况的关键字,在大部分支持跨平台的软件项目中被采用,典型的如下:

typedefunsignedcharuint8_t;typedefunsignedshortuint16_t;typedefunsignedintuint32_t;......typedefsignedintint32_t;

  既然不同平台的基本数据宽度不同,那么如何确定当前平台的基础数据类型如int的宽度,这就需要C语言提供的接口sizeof,实现如下。

printf("int size:%d, short size:%d, char size:%d\n",sizeof(int),sizeof(char),sizeof(short));

  这里还有重要的知识点,就是指针的宽度,如

char*p;printf("point p size:%d\n",sizeof(p));

  其实这就和芯片的可寻址宽度有关,如32位MCU的宽度就是4,64位MCU的宽度就是8,在有些时候这也是查看MCU位宽比较简单的方式。

http://www.hrbkazy.com/news/17276.html

相关文章:

  • 北京做兼职哪个网站泰州seo外包公司
  • 淘宝联盟链接的网站怎么做怎么做好网站搜索引擎优化
  • 餐饮酒店网站建设长沙市云网站建设
  • 手机版网站如何制作百度的推广方式有哪些
  • asp.net做动态网站的技巧论文收录网站
  • 网站建设维护升级html网页制作app
  • 有哪些做h5的网站网站页面优化包括
  • 公司做两个网站有影响吗百度推广获客方法
  • 哪里有网站推广公司百度推广管理
  • 做零食网站的首页模板培训机构退费法律规定
  • 精品网站模板电商营销策划方案范文
  • 返利网站方案百度百度一下
  • 什么网站可以做投资app联盟推广平台
  • 数据网站怎么做的长春网站seo公司
  • 大型门户网站建设价格首码项目推广平台
  • 如何优化公司的网站郑州seo优化服务
  • wordpress内存使用搜索引擎优化seo优惠
  • php网站整合discuz如何在百度上添加店铺的位置
  • jsp做网站步骤东莞网络优化哪家公司好
  • 手机怎么建立自己的网站营销策划推广
  • 免费的企业网站源码自媒体视频发布平台
  • 然后做网站论坛推广的特点
  • 佳木斯做网站的公司网店如何引流与推广
  • 网站的站点地图设计优化大师有必要花钱吗
  • 蒙特网设计公司汉中seo培训
  • 昆明网站建设猫咪深圳专门做seo的公司
  • 宝安网站建设知名的搜索引擎优化
  • 网站在线咨询怎么做百度人工客服电话多少
  • 像wordpress一样的网站吗深圳网站优化排名
  • 深圳企业建站高性价比的选择中国seo关键词优化工具