随笔分类 -  C

摘要:偶遇std::sort的segment fault的,不知如何下手,心中还在思考是不是编译器的bug,搜索了下才发现,compare函数不正确时,还真是可能segment fault, 具体就是 compare(a, b) 函数,a<b和b<a不能同时为true,否则std::sort就会越界,导致 阅读全文
posted @ 2020-06-30 18:52 windtail 阅读(239) 评论(0) 推荐(0)
摘要:来自 stackoverflow find_program(CCACHE_PROGRAM ccache) if (CCACHE_PROGRAM) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") endif ( 阅读全文
posted @ 2020-03-06 14:11 windtail 阅读(1389) 评论(0) 推荐(0)
摘要:工作这么多年,一直认为char是有符号的,而事实上gcc和vs默认也是有符号,但是c规范里实际并没有指明char是有符号还是无符号,所以char比较特殊, char signed char unsigned char 是三种数据类型,与int等是不一样的,int就等效为signed int。 gcc 阅读全文
posted @ 2018-11-30 17:26 windtail 阅读(285) 评论(0) 推荐(0)
摘要:cmake_minimum_required(VERSION 2.8) if (${ARM}) set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_STAGING_PREFIX $ENV{HOME}/dev/k 阅读全文
posted @ 2018-11-30 17:21 windtail 阅读(318) 评论(1) 推荐(1)
摘要:http://preshing.com/20170522/learn-cmakes-scripting-language-in-15-minutes/ 阅读全文
posted @ 2018-02-22 21:55 windtail 阅读(193) 评论(0) 推荐(0)
摘要:有些时候,我们只想定义函数,却不想手动调用函数,而是希望这些函数在系统上电时自动调用。比如在写设备驱动时,设备的初始化函数就是这样一种函数,我们希望所有设备在上电的时候被初始化,每次增加一个设备时,不需要想着去调用这个函数,定义完之后,自己就被加入到设备初始化函数集中。解决的方案有很多,比如写个预处理脚本,把特定格式声明的函数扫描上来,生成一个数组,然后统一调用,不过,这里有另一种解决方法:为每一个函数定义一个指针变量,然后将这个指针变量放到特定的section中,链接器最终会把同名的section组合到一起,即自动生成一个函数指针数组,访问链接器生成的符号即可。typedef void(*D 阅读全文
posted @ 2013-04-26 21:52 windtail 阅读(1144) 评论(0) 推荐(0)
摘要:CMake-5 调试转自 http://cttmayi.blog.cd/2011/01/23/cmake-5-%E8%B0%83%E8%AF%95/ 调试makefile,感觉比较好用的一个命令就是make --just-print (及make -n).他们打印makefile的整个流程,可以协助分析编译过程.虽然CMake也产生makefile,来完成编译的工作,但产生的makefile中频繁的调用cmake -E(cmake的命令模式),导致你如果不熟悉命令的细节的话,用make -n命令也无法了解其中编译的过程.于是还是我还是先开始尝试cmake自己的一些调试命令,或许比较容易1. c 阅读全文
posted @ 2012-03-06 19:55 windtail 阅读(2713) 评论(0) 推荐(0)
摘要:C语言没有像Java那样的try catch处理异常错误的能力,不过可以用setjmp和longjmp两个函数实现错误处理的基本逻辑。setjmp(BUFFER)会将程序当前的寄存器状态保存到BUFFER数组里,这个数组用jmp_buf定义:#include <setjmp.h> jmp_buf BUFFER;longjmp(BUFFER, n)将程序流跳到setjmp的位置,同时恢复BUFFER中保存的状态。第二个参数n为一个整数,当通过longjmp(BUFFER, n)跳转到setjmp位置时,setjmp函数的返回值为n;否则,如果是直接执行setjmp,则返回为零。根据这 阅读全文
posted @ 2012-01-14 19:54 windtail 阅读(879) 评论(0) 推荐(0)