C/C++
文章平均质量分 51
KidLeaf2
这个作者很懒,什么都没留下…
展开
-
==和=
在编程中,发现原来 a==3;这条语句原来不会报错~==和=这个问题,在初学的时候,就看到书山一直强调,到现在还犯这个错误,真的不行啊原创 2011-08-13 21:48:46 · 632 阅读 · 0 评论 -
详解C中volatile关键字
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;vo原创 2012-08-20 12:45:55 · 983 阅读 · 0 评论 -
ffmpeg+sdl+qt的一些问题
在做ffmpeg+Qt+SDL的项目的时候,出现这个错误,/usr/local/lib/libavdevice.a(alsa-audio-dec.o): In function `audio_read_packet':/opt/libav-0.6.2/libavdevice/alsa-audio-dec.c:139: undefined reference to `snd_pcm_read原创 2012-08-30 14:20:57 · 3468 阅读 · 3 评论 -
const int *p,const * int p,int const *p
1 从const int i 说起 有了const修饰的ic 我们不称它为变量,而称符号常量,代表着20这个数。这就是const 的作用。ic是不能在它处重新赋新值了。 认识了const 作用之后,另外,我们还要知道格式的写法。有两种:const int ic=20;与int const ic=20;。它们是完全相同的。这一点我们是要清楚。总之,你务必要记住const 与转载 2012-09-05 15:17:56 · 916 阅读 · 0 评论 -
cygwin make:command not found
默认的cygwin是不安装make的。重新运行cygwin_setup.exe。等到选择package的时候,下面可以看到Devel(开发)目录,展开,选择make那些,或者选择全部安装,都可以。下一步后setup会自动查找关联的包并建议你选上,然后一直下一步即可。。。原创 2012-09-05 15:32:10 · 5859 阅读 · 1 评论 -
把linux运行的Qt程序移植到windows下出现的错误
把linux运行的Qt程序移植到windows下出现的错误:e:\qtsdk\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:67: error: '::mbstate_t' has not been declarede:\qtsdk\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c原创 2012-09-04 17:06:47 · 7251 阅读 · 1 评论 -
Qt Creator 在windows下安装出现问题
Qt Creator 在windows下有时会出现这种问题,就是运行的时候,停在66%处,就不动了。这个问题也许是因为你安装的硬盘格式是NTFS的格式,只要把它转化为FAT32的格式就可以了。至于怎么转,使用PartitionMagic 8.0软件可以很方便的转换。下面是PartitionMagic 8.0中文版的下载地址http://download.csdn.net/detail/ki原创 2012-09-07 16:24:00 · 1061 阅读 · 0 评论 -
在windows下编译ffmpeg中遇到的一些问题
1、编译出来的只有ffprobe.exe,ffmpeg.exe,而没有ffplay.exe,这个可能是因为SDL还没装。先检查下SDL有没有装了。在ffmpeg编译的configure的时候,查看有没有SDL,如果没有SDL,一般就不会生成ffplay.exe。2、当解决了没编译出ffplay.exe的问题后,测试下,发现不能播放,提示“没有找到avcodec-54.dll”。让我重新安装,也原创 2012-09-07 09:50:19 · 3166 阅读 · 0 评论 -
死循环在BEAB BKPT 0xAB汇编的解决办法
以前使用printf 都很顺利,程序可以很自然地通过串口输出字符串,最近使用printf时,程序总是进不去,就是连MAIN函数都不会执行了,只要把printf屏蔽了,软件就可以正常运行使用的是STM32芯片仿真的时候程序就是一直在:0x08002628 BEAB BKPT 0xAB0, 动都不动这个问题的解决办法是:在项目设置中 选择 target转载 2012-09-27 15:39:42 · 3774 阅读 · 1 评论 -
USB OTG
USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。OTG两用设备完全符合USB2.0标准,并可提供一定的主机检测能力,支持主机通令协议(HNP)和对话请求协议(SRP)。在OTG中,初始主机设备称为A设备,外设称为B设备。可用电缆的连接方式来决定初始角色。图2所示是用第5个ID脚确定默认主机的示意图,两用设原创 2012-09-19 16:28:59 · 2121 阅读 · 0 评论 -
USB OTG的工作原理
USB OTG的工作原理 OTG补充规范对USB 2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。OTG有两种设备类型:两用OTG设备(Dualrole device)和外设式OTG设备(Peripheralonly OTG device) 。两用OTG设备完全符合USB 2.0规范,同时,他还要提供有限的主机能力和一个MiniAB插座、支持主机流通协议(转载 2012-09-19 17:05:44 · 14424 阅读 · 0 评论 -
Microchip单片机 使用malloc()函数的注意事项
C语言中的malloc()函数用于动态地在内存中分配一块空间来存储数据,对于在程序执行过程中需要动态分配内存的应用来说,这是十分有用的功能。Microchip的编译器C30(16位单片机)以及C32(32位单片机)在较新的版本中也开始实现了这个函数,这为对RAM本来有些捉襟见肘的单片机编程添加了不少灵活性。不过在实际使用过程中有几个需要注意的地方(以MPLab v8.63为例)。1原创 2012-10-24 15:55:25 · 6623 阅读 · 3 评论 -
面试题-链表
一个 url 指向的页面里面有另一个 url,最终有一个 url 指向之前出现过的 url 或空,这两种情形都定义为 null。这样构成一个单链表。给两条这样单链表,判断里面是否存在同样的 url。url 以亿级计,资源不足以 hash。本题可以抽象为有环和无环情况下的链表交叉问题:情况一:两条单链表均无环 最简单的一种情况,由于两条链表如果交叉,他们的尾节点必转载 2013-08-06 14:36:11 · 1220 阅读 · 0 评论 -
如何在C++中调用C的代码
以前曾经总结过一篇(http://www.cppblog.com/franksunny/archive/2007/11/29/37510.html),关于在C中如何调用C++的代码,当时并未做完全的展开,只是简单的做了下调试,最近看到一个题目要求实现C和C++中代码的互相调用,其结果虽然都是通过extern “C”来实现,但是具体还是有些差别的。先对C中调用C++代码作个简单回顾:1、转载 2012-07-16 14:58:51 · 1039 阅读 · 0 评论 -
浅谈C/C++中的static和extern关键字
static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性。extern, "C"是使C++能够调用C写作的库文件的一个手段,如果要对编译器提示使用C的方式来处理函数的话,那么就要使用extern "C"来说明。一.C语言中的static关键字在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。(1)修饰局部变量一般转载 2012-07-16 14:56:29 · 616 阅读 · 0 评论 -
C中如何调用C++函数
前阵子被问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父的文章可以作为解答,遂拿来Mark一下。 将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明),然后调用它(在你的 C 或者 C++ 代码里调用)。例如:转载 2012-07-15 17:56:55 · 626 阅读 · 0 评论 -
作为函数参数的多维数组
C语言的数组值得注意的地方有两点: 1、C语言中只有一维数组,而且数组的大小必须在编译期就作为常数确定下来。然而,C语言中的数组的元素可以是任何类型的对象,当然也可以是另外一个数组。这样,要“仿真”出一个多维数组就不是一件难事。2、对于一个数组,我们只能够做两件事:确定该原创 2011-08-13 22:40:57 · 4070 阅读 · 0 评论 -
C语言的函数调用规则
C语言的函数调用规则:所有参数都是传值调用。但是我们平时所说的传址调用是什么呢?这就是我们这些所要 说明的。C函数的所有参数均以“传值调用”方式进行传递,这意味着函数将获得参数值的一份拷贝。这样,函数可以放心修改这个拷贝值,而不必担心会修改调用程序实际传递给它的参数。原创 2011-08-13 01:32:26 · 2899 阅读 · 0 评论 -
分析strcpy函数
分析这些面试题,本身包含很强的趣味性;找出其中的错误: 试题1:void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string,原创 2011-08-16 17:47:48 · 1294 阅读 · 3 评论 -
C/C++中计算时间程序
#include#includevoid main(){ clock_t start,finish; double totaltime; start=clock(); …… //把你的程序代码插入到这里面原创 2011-10-10 20:39:57 · 739 阅读 · 0 评论 -
定义和声明的区别
之前学习C/C++的时候,都没去注意变量的定义和声明的具体区别,也随意将它们放在头文件,今日看C++ Primer,才发现原来变量的定义和声明之间的区别竟然如此之大,而且区别它们两个竟然如此重要。变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且原创 2011-10-05 21:19:23 · 1082 阅读 · 2 评论 -
A*算法
因为要写人工智能的课程的实验,要学习下A*算法,现将整理整理: A*是一种启发式搜索,一种有序搜索,它之所以特殊完全是在它的估价函数上,如果我要求的是从初始结点到目的结点的一个最短路径(或加权代价)的可行解,那对于一个还不是目标结点的结点,我对它的评价就要从两个方面评价:转载 2011-10-07 16:52:24 · 1096 阅读 · 0 评论 -
vs2008 快捷键
Ctrl+m+Crtr+o折叠所有大纲Ctrl+M+Crtr+P: 停止大纲显示Ctrl+K+Crtr+C: 注释选定内容Ctrl+K+Crtr+U: 取消选定注释内容Ctrl+J : 列出成员 智能感知Shift+Alt+Enter: 切换全屏编辑C转载 2011-10-08 16:04:07 · 649 阅读 · 0 评论 -
HelloWorld模块加载--驱动
#include #include MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "Hello, world\n"); } static void原创 2011-10-20 21:19:08 · 3812 阅读 · 0 评论 -
编译linux2.6.11内核,出现问题
在编译linux2.6.11时,出现如下问题:In file included from include/asm/mpspec.h:5:0, from include/asm/smp.h:18, from include/linux/smp.h:19, from include/li原创 2011-10-21 13:47:37 · 4839 阅读 · 2 评论 -
fseek函数
1、函数功能用来读写一个数据块,2、函数定义 int fseek( FILE *stream, long offset, int origin ); 第一个参数stream为文件指针 第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移 第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_EN原创 2011-11-26 14:09:18 · 2382 阅读 · 0 评论 -
视频播放的基本原理
一、知识点 ES流(Elementary Stream): 也叫基本码流,包含视频、音频或数据的连续码流.PES流(Packet Elementary Stream): 也叫打包的基本码流, 是将基本的码流ES流根据需要分成长度不等的数据包, 并加上包头就形成了打包的基本码流PES流.TS流(Transport Stream): 也叫传输流, 是由固定长度为188字节的包组成, 含转载 2012-06-28 12:36:03 · 1263 阅读 · 0 评论 -
学习FFmpeg API – 解码视频
ffmpeg是编解码的利器,用了很久,以前看过dranger 的教程,非常精彩,受益颇多,是学习ffmpeg api很好的材料。可惜的是其针对的ffmpeg版本已经比较老了,而ffmpeg的更新又很快,有些API已经完全换掉了,导致dranger教程中的 代码已经无法编译,正好最近需要使用ffmpeg,于是就利用dranger的教程和代码,自己边学边记录,于是也就有了这个所谓的 New FFm原创 2012-07-11 21:18:59 · 3906 阅读 · 1 评论 -
内存地址对齐方式
对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为 32位)如果存放在偶地址开始的地方,那么一个读周期就可以读出,而如果存放在奇地址开始的地方,就可能会需要2个原创 2013-08-09 11:05:11 · 2174 阅读 · 0 评论