5、enum用法 6、typedef用法 7、预处理器与预处理指令 8、位运算 9、常用C/C++代码规范 10、C语言的五大内存分区 嵌入式开发中常用的C语言基础语法并不多,因此,对于想学习或者进入嵌入式领域的同学,可以通过快速学习常用的C语言基础,进而着手尝试开发小项目,在开发过程中不断扩展知识库。 1、const用法 C语言中...
CV_BASE_STRUCT=0x00000000,/**< CVECTOR 对象*/CV_TEMP_STRUCT=0x00000030,/**< TEMPCVECTOR*/} CVECTORSTRUCTS; typedefstructtagCVector {void*cv_pdata; Gint32 cv_len;//元素个数Gint32 cv_tot_len;//空间总长度Gint32 cv_size;//元素长度CVECTORSTRUCTS cv_struct;//type}tagCVector, *CVect...
这两个方法是与std::vector::begin和std::vector::end相对应的,从字面就能看出来,多了一个’c’,顾名思义就是const的意思。 所以: std::vector::cbegin:Returns a const_iterator pointing to the first element in the container. std::vector::cend:Returns a const_iterator pointing to the past-the-...
#define_CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>#include<vector>#include//C++ 11引入了一种新的枚举类型,即“枚举类”,又称“强类型枚举”。声明请类型枚举非常简单,只需要在enum后加上使用class或struct。enumOld{Yes, No};//old styleenumclassNew1{Yes, No};//new styleenumstructNew2...
#define ENUM_WITH_STRING_CONVERSIONS(T, ...) \enum class T { __VA_ARGS__, COUNT }; \inline std::string ToString(T v) { \static const std::vector<std::string> strings = [] { \std::string s = #__VA_ARGS__; \std::vector<std::string> result; \std::istringstream iss(s);...
【C/C++开发】容器set和multiset,C++11对vector成员函数的扩展(cbegin()、cend()、crbegin()、crend()、emplace()、data()),一、set和multiset基础set和multiset会根据特定的排序准则,自动将元素进行排序。不同的是后者允许元素重复而前者不允许。需要包含头文件:#inclu
enum PROTO{PROTO_HTTP,PROTO_FTP,PROTO_SMTP,PROTO_SSH,PROTO_NUM /* 表示协议数量 */};int nCntProto[PROTO_NUM]; 这种写法的好处在于,没有任何一个Magic Number。不管是引用某个统计值还是循环遍历数组,都使用的是定义好的常量。 当需求变更,需要增加新的协议,只要往enum中增加相应的enum常量即可(但要记得...
由于PROTO_NUM会自动跟着增长,所以其它的代码几乎不会受到影响。 ★C++的补充说明 上述代码同时适用于C和C++。不过,对于某些C++程序员,或许看不惯原始数组,觉得STL的容器类看起来比较顺眼。那也没啥大关系:只要把上述代码的数组声明修改为如下,其它的代码基本照旧。 std::vector<int> vctCntProto(PROTO_NUM);...
三、标准库的生态碾压:从孤岛到大陆架 C语言的标准库如同散落海面的孤岛,开发者需自建木筏连接各个功能模块。而C++的STL(标准模板库)则是整片大陆架,提供从容器(vector、map)到算法(sort、find)的完整生态。米哈游《原神》的物理引擎利用std::async实现多线程碰撞检测,代码简洁度较C语言的pthread方案提升5倍...
vector<int>::iterator iter; iter = dataVector.begin()+4; iter = std::advance(dataVector.begin(), 4); iter = std::next(dataVector.begin(), 4); 单例 class FSingle { public: static FSingle* getInstance() { static FSingle GlobalInstance; ...