随笔分类 - C/C++
摘要:# 结构体定义 structA define structB define # 结构体初始化 NO.1 /* use member access */ NO.2 /* use '{}' direction access */ NO.x 结合结构体初始化的几种方式,可组合出其他几种方式
阅读全文
摘要:【环境】 > KEIL5.25 > win10 > @2018-4-23 【问题】 头文件互包含导致的错误(使用了另一文件的类型定义) 文件<fileA.h> 文件<fileB.h> 编译后报错:在文件<fileB.h>中 error: #20: identifier "struct_A_s" is
阅读全文
摘要:结构体初始化方式有3种 结构体定义如下 第1种,位置对应赋值 位置对应必须按序列出 按序未列出的即无关参数,但缺省参数必须是排在最后 第2种,点号访问赋值 点号访问可以指哪打哪,对感兴趣的参数赋值,无关参数缺省,并且赋值项清晰明了 第3种,冒号指示赋值 同点号赋值
阅读全文
摘要:【目的】 在main.c文件中使用在header.c文件中定义在header.h中声明的由编译器指定长度的数组 【代码】 <header.c> <header.h> <main.c> 【编译运行环境】 C-Free5.0, KEIL5.20 【编译运行结果】 > 打开函数 print_arraySi
阅读全文
摘要:C/C++位域结构深入解析 内存是以字节为单位进行编址的,编程语言的基本类型中,最小类型的长度一般也就是1个字节。然而,在解决某些问题时,必须要有二进制层面的表达手段(见本博客的自己动手实现DNS协议一文),又或者某些情形下根本用不着1个字节,作为强大到令人窒息的C/C++,难道没有解决方法?其提供
阅读全文
摘要:# 判断条件时自减操作 (循环体判断 len == 0) > 执行顺序为,while(len) → len-- → 循环体 # 判断条件后作自减操作 (循环体判断 len == 1)
阅读全文
摘要:C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是d
阅读全文
摘要:<设置编译报错> 使用预编译指令 #if (依据), #error "提示信息"
阅读全文
摘要:<target> # 用法就是通用函数特殊化 <具体> # 函数转换 # 函数具体实现 <总结> # 通用函数特殊化,其中针对特定使用场合,可固定通用函数中的部分参数,剩余随机参数保留 # 对应关系为:参数名一一对应
阅读全文
摘要:结构struct 联合Union和枚举Enum的细节讨论 联合(Union)是一种构造数据类型,它提供了一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换。联合体对象在同一时间只能存储一个成员的值。联合的内存大小取决于其中字节数最多的成员,而不是累加,联
阅读全文
摘要:1 /* 第一种方法 */ 2 typedef union 3 { 4 struct VEHICLE_s 5 { 6 TERMINAL_DATA_s sTerminal_Obj; 7 GPS_DATA_s sGps_Obj; 8 TMPS_DATA_s sTmps_Obj; 9 POSE_DATA_...
阅读全文
摘要:#include "stdio.h" typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t;
阅读全文
摘要:【转】玩转嵌入式(公众号) 在入门单片机时,想必大家都都会遇到一下这种情况 unsigned char a = 0x12; unsigned char b = 0x34; unsigned int c = 0; 如何把两个8位数据和在一起变成16位数据呢? 一般情况下大家都会这样做,我最初是也是这么
阅读全文
摘要:1 /** 2 ***************************************************************************************** 3 * @FileName 可变长度的结构体成员 4 * @Editor 一点零一 5 * @EdotTime 2017年...
阅读全文
摘要:或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端、哪种是小端,然后又去查以前写的记录?更让人不快的是,这种经历反反
阅读全文
摘要:static const char* const str[] = {“string”} 静态常量型指针变量 static const char* 常量型变量 const str[] 这样修饰的作用为 指针 str 不能做修改、做运算 即 str++,str-- 非法 该指针为 only-read 变
阅读全文
摘要:Computer Systems: A Programmer's Perspective: 3.9.3 Data AlignmentMany computer systems place restrictions on the allowable addresses for the primitiv
阅读全文