C语言基础功底
文章平均质量分 67
hdanbang
这个作者很懒,什么都没留下…
展开
-
cmake 学习笔记(一)
最大的Qt4程序群(KDE4)采用cmake作为构建系统Qt4的python绑定(pyside)采用了cmake作为构建系统开源的图像处理库 opencv 采用cmake 作为构建系统...看来不学习一下cmake是不行了,一点一点来吧,找个最简单的C程序,慢慢复杂化,试试看:例子一单个源文件 main.c例子二转载 2015-02-04 14:59:23 · 363 阅读 · 0 评论 -
#ifdef vs #if defined
#ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如#if defined (AAA) && defined (BBB)xxxxxxxxx#endif#if defined (AAA) || VERSION > 12xxxxxxxxx#endif而#ifdef 就不能用上面的用法,也就是说,当你要判断单个宏是否定义时#ifdef 和 #if d转载 2015-07-09 10:52:03 · 1324 阅读 · 0 评论 -
栈,堆,全局,文字常量,代码区总结
一. 区域划分堆: 是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程初始化的时候分配,运行过程中也可以向系统要额外的堆,但是记得用完了要还给操作系统,要不然就是内存泄漏。栈:是个线程独有的,保存其运行状态和局部自动变量的。栈在线程开始的时候初始化,每个线程的栈互相独立,因此,栈是 thread safe的。每个C ++对转载 2015-07-02 11:54:00 · 455 阅读 · 0 评论 -
批处理文件
基础部分:======================================================================一、基础语法:1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环转载 2015-08-10 10:41:32 · 702 阅读 · 0 评论 -
CUFFT中FFT点数对FFT性能的影响测试
基2FFT比非基2FFT的运行速度要快,在NVIDIA GPU设备上使用FFT的时候也是尽量使用基2FFT,因为本身使用GPU就是为了追求快速计算。测试了下一个二维复数矩阵在基2FFT和非基2FFT的性能差别(二维矩阵中的一个维度进行FFT,用到了batch)。从我测试的结果来看,基2FFT比非基2FFT快5倍。测试的数据尺寸:基2FFT:512×16384,非基2FFT:428×16384,测试转载 2015-07-23 20:54:59 · 3496 阅读 · 0 评论 -
“无法找到“xxx.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件。”
现象:在vs2008中,建立一个空项目,添加一个c++文件main.cpp#includeusing namespace std;int main(){ cout return 0;}该程序能够编译得过,但是执行,无论是debug还是release,都很出现“无法找到“xxx.exe”的调试信息,或者调试信息不匹配。未使转载 2015-07-24 13:49:27 · 8561 阅读 · 1 评论 -
assert()函数用法总结
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badpt转载 2015-08-05 10:44:42 · 397 阅读 · 0 评论 -
为什么交换相加的几个数的顺序,却得到了不同的和?
为什么交换相加的几个数的顺序,却得到了不同的和?23.53 + 5.88 + 17.64 = 47.0523.53 + 17.64 + 5.88 = 47.050000000000004在 java 和 javascript 中,都返回了相同的值。我知道计算机中用二进制浮点形式来表示小数,有很多比如 1/3 - 0.333333…都不能正确的表示。也许这个问题有点儿傻,但是我想转载 2015-09-28 10:04:43 · 1665 阅读 · 0 评论 -
c++中.dll与.lib文件的生成与使用的详解
--------------------------------------------------------------------------------两种库:• 包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。• 包含函数代码本身,在编译时直接将代码加入程序转载 2015-10-30 10:01:17 · 658 阅读 · 0 评论 -
QueryPerformanceFrequency 和 QueryPerformanceCounter用法
QueryPerformanceFrequency() - 基本介绍类型:Win32API原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);作用:返回硬件支持的高精度计数器的频率。返回值:非零,硬件支持高精度计数器;零,硬件不支持,读取失败。QueryPerformanceFrequenc转载 2015-12-12 18:33:42 · 1000 阅读 · 0 评论 -
extern 用法,全局变量与头文件(重复定义)
用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include (xxx.h包含了a的声明)不就可以了么,为什么还要用extern呢??这个问题一直也是似是而非的困扰着我许多年了,今天上网狠狠查了一下总算小有所获了:头文件首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编译转载 2015-07-02 11:07:18 · 523 阅读 · 0 评论 -
变量前缀和存储位置的关系
进程中内存空间的划分:1. 代码区 – 存放代码/函数,只读区2. 全局区 – 保存全局变量,读写区3. BSS段 – 未初始化的全局变量,BSS段在main执行前会自动清04. 栈区 – 存局部变量,包括函数形参,栈区的内存是自动分配自动回收的5. 堆区 – 程序员自己管理的区域,malloc/ free操作的都是堆转载 2015-07-02 11:32:08 · 646 阅读 · 0 评论 -
VS2010 常用快捷键
Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT + C显示类视图窗口 F4 显示属性窗口 SHIFT + F4显示项目属性窗口 CTRL + SHIFT + E显示资源视图 F12 转到定义转载 2015-05-22 14:23:24 · 337 阅读 · 0 评论 -
进程与线程的一个简单解释
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好地类比,可以把它们解释得清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CP转载 2015-02-16 10:43:41 · 356 阅读 · 0 评论 -
scp命令的用法详解
这篇文章主要是参考了http://blog.csdn.net/jiangkai_nju/article/details/7338177这个博客,要看详细的内容可以参考这个博客进行学习研究,但是我觉得在以下的一些基本可以满足我们的文件传输要求了。scp是linux中功能最强大的文件传输命令,可以实现从本地到远程以及远程到本地的轻松文件传输操作。下面简单的讲解一些关于scp命令的操作,给有用的人一转载 2015-01-24 10:56:12 · 519 阅读 · 0 评论 -
C++模板类
理解编译器的编译模板过程如何组织编写模板程序前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年我还没有必要自己编写模板类。可是在我转载 2015-03-02 17:28:00 · 412 阅读 · 0 评论 -
makefile经典教程
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一转载 2015-03-03 15:38:43 · 294 阅读 · 0 评论 -
模板类的继承
模板类的继承包括四种:1.(普通类继承模板类)[cpp] view plaincopytemplateclass T> class TBase{ T data; …… }; class Derived:public TBaseint>{ …… }; 2.(转载 2015-03-11 09:07:14 · 503 阅读 · 0 评论 -
内核宏ALIGN的含义
在linux2.6.30.4中,在include/linux/kernel.h文件中,ALIGN宏的定义如下:[cpp] view plaincopy#define ALIGN(x,a) __ALIGN_MASK(x,(typeof(x))(a)-1) #define __ALIGN_MASK(x,mask) (((x)转载 2015-04-25 14:32:27 · 478 阅读 · 0 评论 -
CRT detected that the application wrote to memory after end of heap buffer
点击打开链接 http://blog.csdn.net/wu_lai_314/article/details/8241697今天在做检测线索二叉树与其他算法的时间复杂度时候遇到了这个问题,在网络上查阅了很多资料后,解决了这个问题,现在将这些资料及感悟整理如下,以来方便网友查阅,二来也作为自己的笔记.点击打开链接 http://blog.csdn.net/wu_lai转载 2015-04-29 10:30:25 · 530 阅读 · 0 评论 -
SRAM和DRAM的区别
随机访问存储器(RAM)分为静态随机访问存储器(Static Random Access Memory - SRAM)和动态随机存取存储器(Dynamic Random Access Memory -DRAM)。一、静态随机访问存储器(SRAM)静态随机访问存储器是随机访问存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取原创 2015-05-11 08:53:25 · 55468 阅读 · 5 评论 -
为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-----_CrtMemBlockHeader 温馨提示:该文所有测试没有特殊说明都是在Debug模式下!用的是VS2010编译器!======转载 2015-05-21 10:38:56 · 753 阅读 · 0 评论 -
#if defined和#if !defined(c语言的宏定义)
因为对于一个大程序而言,我们可能要定义很多常量( 不管是放在源文件还是头文件 ),那么我们有时考虑定义某个常量时,我们就必须返回检查原来此常量是否定义,但这样做很麻烦.if defined宏正是为这种情况提供了解决方案.举个例子,如下:#define .... #define .... .... .... #define a 100 ....转载 2015-11-27 10:13:37 · 1157 阅读 · 0 评论