随笔分类 -  C/C++

摘要:在 C 语言中,当一个表达式中包含多个对同一个变量的修改(例如自增或自减操作),并且这些修改之间没有明确的顺序关系时,就会产生“未排序的修改”(unsequenced modification)问题。这种情况下,编译器无法保证这些修改发生的顺序,从而可能导致未定义行为(undefined behav 阅读全文
posted @ 2024-10-15 17:21 壹点灵异 阅读(147) 评论(0) 推荐(0) 编辑
摘要:IEEE 754 - 维基百科,自由的百科全书 (wikipedia.org) 数值修约 - 维基百科,自由的百科全书 (wikipedia.org) IEEE-754 在线浮点数转换 IEEE 754标准规定了浮点数的舍入方式: 就近舍入: 即十进制下的四舍五入方式。 对于二进制表示的浮点数,小数 阅读全文
posted @ 2024-03-08 20:37 壹点灵异 阅读(1746) 评论(0) 推荐(0) 编辑
摘要:1 - 联合体内嵌结构体初始化赋值 union { struct { int i; float f; char *p; }; int o; } obj3 = { 1, 2.2, "sk", 4, 9 }; printf("struct inlay union: %d, %f, %s, %d\n", 阅读全文
posted @ 2024-01-10 17:51 壹点灵异 阅读(17) 评论(0) 推荐(0) 编辑
摘要:>from: C/C++ 开发必备知识总结 (qq.com) const 作用 修饰变量,说明该变量不可以被改变; 修饰指针,分为指向常量的指针和指针常量; 常量引用,经常用于形参类型,即避免了拷贝,又避免了函数对值的修改; 修饰成员函数,说明该成员函数内不能修改成员变量。 使用 // 类 clas 阅读全文
posted @ 2023-05-24 11:07 壹点灵异 阅读(70) 评论(0) 推荐(0) 编辑
摘要:#include <stdio.h> #include <stdbool.h> #include <stdarg.h> #define MLA_ASSERT(expr) (int)((!!(expr)) && (printf("assert fail: \"%s\" @ %s, %u", #expr 阅读全文
posted @ 2023-04-24 16:23 壹点灵异 阅读(67) 评论(0) 推荐(0) 编辑
摘要:// 统计变参数量 #define CALC_VA_COUNT(arg...) \ ({ \ int count = 0; \ int insideQuotes = 0; \ const char *str = #arg; \ printf("D> CALC_VA_COUNT: %s\n", str 阅读全文
posted @ 2023-04-14 15:15 壹点灵异 阅读(68) 评论(0) 推荐(0) 编辑
摘要:来源:C语言表驱动法编程实践(精华帖,建议收藏并实践) (qq.com) 数据压倒一切。如果选择了正确的数据结构并把一切组织的井井有条,正确的算法就不言自明。编程的核心是数据结构,而不是算法。 ——Rob Pike 说明 本文基于这样的认识:数据是易变的,逻辑是稳定的。 本文例举的编程实现多为代码片 阅读全文
posted @ 2022-11-29 14:53 壹点灵异 阅读(267) 评论(0) 推荐(0) 编辑
摘要:此文所有的实验都是基于下面的程序:char str[10];for (int i = 0; i < 10; i++) str[i] = '!';执行完后str的值为str = "!!!!!!!!!!"我们把str的每个字符都初始化为惊叹号,当str的值发生变化时,使用printf打印str的值,对比 阅读全文
posted @ 2022-07-06 16:25 壹点灵异 阅读(266) 评论(0) 推荐(0) 编辑
摘要:FILE 在有些编译器上会输出带路径的文件名,删除路径可使用函数 strrchr #include <string.h> #include <stdio.h> #define __FILENAME__ (strrchr(__FILE__, '\\') ? (strrchr(__FILE__, '\\ 阅读全文
posted @ 2022-05-13 18:05 壹点灵异 阅读(578) 评论(0) 推荐(0) 编辑
摘要:宏参数多对一:使用分号分隔多参数 宏部分替换:替换需要转换的再与后续宏接续 #include <stdio.h> #define _MESS_FAILED() printf("%s %d: ASSERT FAILED\r\n", __func__, __LINE__) #define TU_BREA 阅读全文
posted @ 2022-03-29 09:22 壹点灵异 阅读(358) 评论(0) 推荐(0) 编辑
摘要:在搞touchgfx时遇见了一个初始化列表顺序与类中定义不一致的问题,error:when initialized here [-Werror=reorder] 初始化列表顺序与类中定义顺序不一致错误,提示也很明显 初始化列表中buttonCallback放在了最后 类中定义buttonCallba 阅读全文
posted @ 2021-12-26 20:04 壹点灵异 阅读(699) 评论(0) 推荐(0) 编辑
摘要:【来源】https://mp.weixin.qq.com/s/0kmN5knql4yrOuUcnebwIQ 阅读全文
posted @ 2021-06-25 11:04 壹点灵异 阅读(70) 评论(0) 推荐(0) 编辑
摘要:【来源】 https://mp.weixin.qq.com/s/4tPHkwEd5n-xHNHJHtCoBw 阅读全文
posted @ 2021-06-25 09:43 壹点灵异 阅读(95) 评论(0) 推荐(0) 编辑
摘要:枚举定义在前,作为函数返回值在后 枚举定义在后,则函数返回值需用普通类型 阅读全文
posted @ 2020-08-13 00:49 壹点灵异 阅读(2416) 评论(0) 推荐(0) 编辑
摘要:【来源】C++类大小详尽讲解 【来源】空类(empty class) 阅读全文
posted @ 2020-08-03 00:16 壹点灵异 阅读(137) 评论(0) 推荐(0) 编辑
摘要:虚函数 格式:virtual 返回值类型 函数名(参数表) { 函数体; } 虚函数是非静态的成员函数,经过派生之后,虚函数在类族中可以实现运行时多态,即各派生类对象调用各自的虚函数 成员函数一旦被声明为虚函数,则无论声明它的类被继承多少代,派生类中依旧保持虚函数的特性 不具备多态特性的函数: 静态 阅读全文
posted @ 2020-07-28 22:39 壹点灵异 阅读(231) 评论(0) 推荐(0) 编辑
摘要:模板 模板是一种参数化的多态性工具 参数化多态性是指将程序所处理的对象的类型参数化,是一段程序代码可以用于处理多种不同类型的对象 模板是一种使用无类型参数来产生一族函数或类的机制 参数化是指模板不以数据为参数,而是以数据类型作为参数 模板通过参数实例化构建具体的函数或类,即模板函数和模板类 函数模板 阅读全文
posted @ 2020-07-28 11:35 壹点灵异 阅读(185) 评论(0) 推荐(0) 编辑
摘要:静态成员 静态成员包括静态数据成员和静态成员函数,提供了同类对象间数据成员的共享机制 静态成员不是某个对象的成员,是类所有对象的共享成员,只建立一个成员副本 静态成员的定义与引用 定义格式:static 类型 成员名 引用格式:类名::静态成员 静态数据成员 初始化格式:类型 类名::静态数据成员 阅读全文
posted @ 2020-07-27 00:02 壹点灵异 阅读(188) 评论(0) 推荐(0) 编辑
摘要:常引用 格式:const 类型说明符 &引用名 注意:常引用所引用的对象不能修改 常对象 格式:类名 const 对象名 或 const 类名 对象名 注意:常对象其数据成员在生存期内不能修改 常对象定义时必须初始化 常对象只能由常成员函数操作 常对象成员 常对象成员函数 格式:类型 函数名(参数表 阅读全文
posted @ 2020-07-26 23:20 壹点灵异 阅读(242) 评论(0) 推荐(0) 编辑
摘要:类定义中不允许对数据成员初始化 类外只能访问公有部分 类成员必须指定访问属性 类的成员函数是实现对封装的数据成员进行操作的唯一途径 类定义中不允许定义本类对象,因无法预知大小 类与结构形式相同,唯一区别是成员未指定访问属性时,结构是公有,类是私有 成员函数在类中实现自动成为内联函数,消耗空间换时间 阅读全文
posted @ 2020-07-24 09:57 壹点灵异 阅读(604) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示