使用void*强转函数指针(编辑中) 别把函数名当成函数,justa变量typedef void (*AirCb)(void); //空回调函数typedef int (*aimFunction)(int* para1, char* para2, int para3); //要传递的目标函数void businessRegister(uint8_t *pData, uint32_t dataLen, AirCb cb){ if(NULL != cb) { int *realPa...
VS Code中C/C++ 无法跳转到定义的解决办法 VS code的跳转功能一直很迷,时好时坏,有些新的工程环境干脆用不了。经过一遍遍的baidu加上自己的摸索,总结出一套经验,应该可以解决大部分的情况了。一、首先,当然是安装插件了C/C ++ 和 C++ intellisense 两个是必装的。安装之后记得重启编译器二、关闭编译器再重新打开已安装插件的情况下, 会遇到之前正常的的VS code突然无法跳转了,怎么按都没反应,这时候将编译器重启一下,会发现跳转功能又正常了,好吧,重启大法好。三、添加包含路径1、在VS code界面按 ctrl
Git bash 在使用control+c、control+v之后,打字没有回显的问题 一次偶然,在Gitbash窗口中复制一些信息,切回来之后发现,居然无法打字了,而按回车却有反应。一番搜索之后,也算是找到了解决方案。输入reset然后回车摘录自网上的Rootcause:当运行shell或shell中的大多数程序时,您输入的任何内容都会通过内核的TTY子系统返回到用户的终端。对于擦除字符,Ctrl+R,Ctrl+Z等等,还有其他特殊的处理方式。某些程序,特别是从命令行运行的程序(特别是编辑器)不需要或不想这样做。出于这个原因,他们用IOCTL调用TY(终端)设备向内核发出...
Const 关键字修饰指针 C语言中const修饰指针要特别注意,共有两种形式,一种是用来限定指向空间的值不能修改;另一种是限定指针不可更改。举例说明如下:int i = 9;int j = 99;int k = 999;const int * ptr1 = &i; //指针1int * const ptr2 =&j; //指针2上面定义了两个指针ptr1和ptr2。在定义1中const限定的是*ptr1,即其指向空间的值不可改变,若改变其指向空间的值如*ptr1=20,则程序会报错;但pt
结构体中动态内存的管理(malloc和free) C语言中内存的管理主要是依据malloc和free实现的,其中malloc主要是实现内存的分配,而free则是实现内存的释放。虽然这是我们已经很熟悉的,但是还是存在一些问题。特别是当结构体中存在指针的情况下,各种问题也就会展现出来。其中最大的问题是:结构体中指针变量没有指向一块合法的内存空间,就对指针参数进行操作,这也是很多C语言程序员经常犯的错误。简单的实例如下:struct student { char*name; intscore; }s...
C语言 判断相等的条件语句,为什么把数字放在前面? 代码写久了,经常有这样一种疑惑,经常能在别人的代码,或者库中见到这样的写法,0 ==Tick或者1 ==Number ,为什么不写成Tick == 0或者Number == 1呢? 相信很多人都遇到过这样的BUG,程序逻辑与设想的不太一样,但是编译缺没有报错,仔细检查后发现,原来是把Tick == 0写成了Tick = 0,判断条件的语句成了赋值语句,编译器当然不会报错,但是程序已经不能按照预先的设想来跑了。 当判断语句把数字写在前面时,即使敲代码的...
无线网络干货——信噪比、信号强度、路径损耗、多径干扰、符号间干扰、天线、放大器 不知不觉,已经进入全民物联网时代,随着物联网从业者的增多,越来越多人开始了解物联网,了解无线网络。这其中有许多生涩的概念,困扰着许多初学者(包括我)。刚好近期在阅读一本关于 “802.11 无线网络”的书籍,书中对这些概念解释的比较透彻,特摘录下来,供学习参考。一、信噪比二、信号强度三、路径损耗四、多径干扰五、符号间干扰...