C
文章平均质量分 62
初秋的风
这个作者很懒,什么都没留下…
展开
-
关于C语言的输入输出重定向
1、一种是在程序中设置:使用freopen将输入输出重定向。C语言的标准输入输出为stdin和stdout,这两个变量的类型为FILE*类型,也就是说,标准输入输出操作,其本质还是文件操作。当需要重定向时,可以调用#include freopen("d:\\data_in.txt","r",stdin); 将输入定向为文件d盘下的文件data_in.txt文件(linux下原创 2016-04-11 21:19:06 · 19822 阅读 · 1 评论 -
深入体会__cdecl与__stdcall
在学习C++的过程中时常碰到WINAPI或者CALLBACK这样的调用约定,每每觉得十分迷惑。究竟这些东西有什么用?不用他们又会不会有问题?经过在网上的一番搜寻以及自己动手后,整理成以下的学习笔记。1.WINAPI与CALLBACK 其实这两者在Windows下是相同的,在windef.h中定义如下:#ifdef _MAC#define CALLBACK PASCAL...转载 2018-10-16 19:55:41 · 716 阅读 · 0 评论 -
__DATE__ 和 __TIME__ 转换为秒数
__DATE__ = "*** ** ****" 加上字符串结束符共计12个字节__TIME__ = "**:**:**" 加上字符串结束符共计9个字节#define MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')#define MONTH_IS_FEB (__DATE__[原创 2017-06-15 17:14:18 · 1243 阅读 · 0 评论 -
Kalman 滤波
#include #include #include double frand(){ return 2*((rand ()/(double)RAND_MAX)-0.5);}/**卡尔曼滤波算法 * 1、有两个值:一个预测值;另一个为测量值 * 2、预测值P(k) = P(k-1)+R(k) // P(k-1)为上一时刻的预测值,R为预测值的方差;原创 2017-06-16 17:00:38 · 452 阅读 · 0 评论 -
调试信息输出
//#define _DEBUG_#ifdef _DEBUG_#define DBG(...) { printf("%s, \tline[%d]: ",__FILE__,__LINE__);printf(__VA_ARGS__);} #else#define DBG(...) ;#endif原创 2017-04-20 17:48:46 · 385 阅读 · 0 评论 -
C语言可变参数函数
http://blog.csdn.net/weiwangchao_/article/details/4857567C函数要在程序中用到以下这些宏:void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr );转载 2016-05-20 18:57:24 · 416 阅读 · 0 评论 -
斐波那契数列的递归与非递归求解方法&递归的优缺点
在C语言中,递归指的是函数在函数体内部调用了函数自身。这种形式对于解决一些能够用分治法将主问题分解成若干子问题,且子问题的结构与主问题相似的问题的时候,可以极大地简化程序的编写,但是递归的思想对于初学者来说一般都难以接受。其实递归函数的使用主要抓住两点,第一是主问题与子问题之间的拆分与组合关系,第二就是递归的结束条件,清楚这两个要素再来编写递归函数就会简单多了。 但是递归函数也有原创 2016-05-17 16:01:38 · 7096 阅读 · 0 评论 -
C/C++的全局变量初始化与不初始化的区别
int x =0; 跟 int x; 的效果看起来是一样的。但其实这里面的差别很大,强烈建议大家所有的全局变量都要初始化,他们的主要差别如下:在C语言里,全局变量如果不初始化的话,默认为0,也就是说在全局空间里:编译器在编译的时候针对这两种情况会产生两种符号放在目标文件的符号表中,对于初始化的,叫强符号,未初始化的,叫弱符号。 连接器在连接目标文件的时候,如果遇到两个重名符号,会有以转载 2016-05-15 11:39:52 · 3302 阅读 · 0 评论 -
C语言获取系统时间 & 精度
C语言获取当前系统时间的几种方式C语言获取系统时间的几种方式C语言中如何获取时间?精度如何?1 使用time_t time( time_t * timer ) 精确到秒2 使用clock_t clock() 得到的是CPU时间精确到1/CLOCKS_PER_SEC秒3 计算时间差使用double difftime( time_t timer1, time_t tim转载 2016-05-24 14:46:38 · 6253 阅读 · 0 评论 -
CMake交叉编译配置
CMake交叉编译配置 很多时候,我们在开发的时候是面对嵌入式平台,因此由于资源的限制需要用到相关的交叉编译。即在你host宿主机上要生成target目标机的程序。里面牵扯到相关头文件的切换和编译器的选择以及环境变量的改变等,我今天仅仅简单介绍下相关CMake在面对交叉编译的时候,需要做的一些准备工作。 CMake给交叉编译预留了一个很好的变量即CMAKE_TOOLCHAIN_...转载 2019-03-05 10:50:07 · 622 阅读 · 0 评论