基础的确差系列
aazhoukeaa
这个作者很懒,什么都没留下…
展开
-
宏(#define)的作用域c/c++
宏的作用域原创 2023-02-25 22:31:41 · 431 阅读 · 0 评论 -
c/c++宏函数和多参宏函数
宏函数、多参宏函数原创 2022-08-03 12:39:35 · 4003 阅读 · 0 评论 -
常忘记问题:对象指针数组在函数间传递c/c++
我是赛佳佳小白,高手可以出去了。。。经常会在c++中定义对象指针数组,然后有时会需要传递这整个数组,然后总是传递后像[]、++ 的方式使用,这个这个才是正解:传递 obj *name[x],然后用 obj**类型去接name才是正解。其实换成int,char类型就清楚了:...原创 2022-01-24 18:37:05 · 326 阅读 · 0 评论 -
Windows下,c/c++内存使用异常如0xBAADF00D等常见标识
其他还有一些如下:内存的一些magic number和debug crt | 查问题原创 2022-01-04 10:45:44 · 866 阅读 · 0 评论 -
自建结构体中malloc的ptr操作注意教训
实际代码,自建结构体中,往往我会使用malloc的ptr数据空间,也往往会对这些空间进行数据memcpy拷贝操作。 但我一般会偷懒,直接拷贝不做数据空间、长度的检测,逻辑清晰时这还好,实际代码一旦复杂了、c++对象化了,有时数据拷贝长度没控制好,那就完蛋了,这种拷贝行为能够通过编译且执行,且会导致程序呈现概率性出错、概率性崩溃现象。 这种情况下,简直无语,你连问题都难以找到,也没法调试,因为是概率化出错。 nfp的那个遗传计算,因为这问题搞了我...原创 2021-12-23 09:54:57 · 473 阅读 · 0 评论 -
c/c++头文件交叉引用导致的前置声明
老问题了,总忘,在c++头文件的类声明中有交叉引用的需求,导致编译error: unknow type name ...原创 2021-08-31 17:09:38 · 287 阅读 · 0 评论 -
使用tftp、nand等uboot自带操作完成内核、文件系等下载烧写
tftp、nand等uboot自带操作完成内核、文件系等下载烧写原创 2018-12-28 17:31:35 · 1516 阅读 · 1 评论 -
常量字符串和格式化字符串的输出时的长度判断
该问题主要在打印输出、日志输出中涉及:打印和日志记录一般是单独成类对象的,最终的输出一般都先放在一个RAM_BUF中,然后输出。实际业务中待输出的数据, 有的是不固定长度的常量字符串,有些则是格式化变动长度字符串,打印和日志类对象一般需要先识别传入的长度是否合格,因为有些日志是要进入队列中、tcp中,而不都是简单printf的。以下是字符串长度识别的知识点固定记录:一般用途是先贴上时标...原创 2018-10-18 13:37:39 · 498 阅读 · 0 评论 -
常用双向链表
别再吃饱了重复了。原创 2018-02-24 13:34:39 · 150 阅读 · 0 评论 -
二/三维数据类型的动态内存申请
基础的确差!贴图备忘!二维数据:20190120注意:上方代码line15错误,应该为 pa = (int **)malloc(m*sizeof(int*));此外内存申请好后一定要注意memset方式,多维数组空间是不连续的,不是一个memset完事,这个错误超级不好找。三维数据:(三维数据应用:涉及立体空间x,y,z轴的对应)...原创 2018-02-06 10:20:49 · 247 阅读 · 0 评论 -
c/c++基础之一
说来惭愧一直是以拆东墙补西墙的方式处理“头文件循环包含”和“类型重复定义”问题的。以下是我建立一个工程时的习惯性框架:这种款框架遇到的第一个问题是,头文件件循环包含问题:解决方式为:将导致循环包含的头文件群体,单独放在一个新文件中,然后再被包含。这种款框架遇到的第一个问题是,共有头文件件定义数据类型后重复定义问题:原创 2017-05-06 21:45:15 · 243 阅读 · 0 评论 -
语法tips4(宏定义函数)
某些文章表示宏函数对文件结构造成了影响,不是很推荐宏函数,但是宏函数不需要开函数堆栈却是个不折不扣的优势。关键是宏函数还是比较多见的:①:最常见宏函数#define MAX(a,b) ((a>b)?a:b)#define MIN(a,b) ((a②:只能用宏函数,主要优点在于宏定义的函数传入参数时不挑参数类型,不需要参数绝对匹配。原创 2016-12-08 19:32:55 · 437 阅读 · 0 评论 -
语法tips 3(结构体传参)
1:如何让系统自动告知你数据类型:假设有如下数据类型:#define NUM_OF_SG (4)#define SG_NUM (2)struct Oop_Setting_Group_Unit{ int act_sg_no; float sg[NUM_OF_SG][SG_NUM];};int main(){struct Oop_Se原创 2016-12-02 11:23:15 · 369 阅读 · 0 评论 -
语法tips 1
#include int main(void){if(0);{printf("zhou\r\n");}return;}会发生什么?居然编译通过了,居然也执行了,运行结果“zhou”。if(0)合理的被;结束。再试:#include int main(void){{printf("zhou ");}{原创 2016-08-31 09:39:44 · 506 阅读 · 0 评论 -
if elseif elseif elseif else...
一直没注意原来if elseif elseif elseif else...还可以这么弄,不过这么弄逻辑上很艹蛋,不合适,纯装B。/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////原创 2016-09-29 13:58:12 · 783 阅读 · 0 评论 -
((void*)-1)
printf("0x%x\r\n",-1); 显示0xffffffff。void*=>变量是一个某型指针类型,((void*)-1)=》一个某类型指针类型,指向地址为0xffffffff。原创 2016-08-31 23:07:44 · 1749 阅读 · 0 评论