C
文章平均质量分 71
CHAOS万有引力
这个作者很懒,什么都没留下…
展开
-
atoi 和 itoa 的作用
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:# include # include void main (void){int num = 100;char str[25];itoa(num, str, 10);printf("The number 'num'转载 2012-03-13 19:39:16 · 691 阅读 · 0 评论 -
关于size_t, ptrdiff_t, size_type, difference_type
size_t是unsigned类型,用于指明数组长度或下标,它必须是一个正数,std::size_tptrdiff_t是signed类型,用于存放同一数组中两个指针之间的差距,它可以使负数,std::ptrdiff_t.size_type是unsigned类型,表示容器中元素长度或者下标,vector::size_type i = 0;difference_type是signed类型,转载 2013-04-29 10:53:16 · 898 阅读 · 0 评论 -
将内存扩大缩小的函数 realloc(){}
realloc 用过很多次了。无非就是将已经存在的一块内存扩大。char* p = malloc(1024);char* q = realloc(p,2048);现在的问题是我们应该如何处理指针 p。 刚开始按照我最直观的理解,如果就是直接将 p = NULL;。 到最后只需要释放 q的空间就可以了。因为最近在做个封装。结果在做单元测试的时候发现。有时候我在 free(q); 的时原创 2013-05-27 21:27:35 · 3002 阅读 · 0 评论 -
Linux下C编程undefined reference to'exp'问题的解决
我在Linux下编了一个程序,使用数学函数,可是始终通过不了.后来,我用exp函数,好像gcc都编译不过去.程序很简单:#include ;#include ;main(){printf("%f", exp(3));} 出错消息是:undefined reference to'exp'这不是标准库函数吗?怎么用不了?解决答案是:gcc -lm fil转载 2013-07-15 15:30:43 · 3708 阅读 · 0 评论 -
CUSparse 第二章 使用CUSPARSE API
2.1 2.1 线程安全 这个库是线程安全的,并且函数可以被多个主机线程调用。2.2 标量参数 标量参数可以在主机和设备之间传递。 极少数函数的返回值是标量,譬如doti()和nnz().和其他返回数据类型一样,标量参数返回时要等到GPU上运作完成才能确定。所以当主机读取数据时应当要做适当的同步。 这个特点允许CUSPARAE函数翻译 2013-09-12 02:38:20 · 2391 阅读 · 0 评论 -
CUSPARSE 第三章 CUSPARAE索引和数据格式
(纯属自学笔记,部分翻译,不会翻译的不翻译)3.1 索引基本格式 该函数库支持 zero- and one-based 索引. The index base 是通过 cusparseIndexBase_t 选择, 且是一个独立参数,或者是矩阵形容器 cusparseMatDescr_t type的一部分3.2 向量格式 略3.3 矩阵格式 略翻译 2013-09-13 11:45:20 · 1569 阅读 · 0 评论 -
系数线性系统地加速处理
(部分翻译)Nvidia 数值库团队, 利用CUSPARSE和CUBLAS两个函数库针对 incomplete-LU和Cholesky-preconditioned interative methods 取得了两倍左右的加速。文章集中在介绍 Bi-Conjugate Gradient 和 stabilized Conjugate Gradient iterative methods 两翻译 2013-09-15 12:29:47 · 1054 阅读 · 0 评论 -
CUDA samples 2.3节 用CUDA示例来创建CUDA项目
2.3.1. Creating CUDA Projects for Windows略2.3.2默认的samples的安装路径 是 NVIDIA_CUDA_5.5_Samples 并且示例程式的分为六类 : 0_Simple,1_Utilities, 2_Graphics, 3_Imaging, 4_Finance, 5_Simulations,6_Advanced, 7_CUDALi翻译 2013-09-16 17:18:35 · 3253 阅读 · 0 评论 -
CUDA samples 第三章 sample reference 概况
示例代码分为下列几类:1. Simple Reference 基础CUDA示例,适用于初学者, 反应了运用CUDA和CUDA runtime APIs的一些基本概念.2. Utilities Reference 演示如何查询设备能力和衡量GPU/CPU 带宽的实例程序。 3. Graphics Reference 图翻译 2013-09-16 18:23:22 · 3611 阅读 · 0 评论 -
跟我一起写Makefile 博客索引
最近在看这个系列的博客,但是看得挺凌乱的,就写个索引,到时候有什么不会,回头找起来也方便。参考链接:http://blog.csdn.net/haoel/article/details/2895跟我一起写Makefile (十) 四、foreach 函数 这个函数是用来做循环用的http://write.blog.csdn.net/post原创 2013-09-25 19:49:50 · 1007 阅读 · 0 评论 -
CUDA函数库调用问题解决
问题:装好CUDA5.5, samples也安装成功,编译也成功了,但是在运行程序的时候出问题了。譬如进入NVIDIA_CUDA-5.5_Samples/7_CUDALibraries/ 目录中,执行 ./conjugateGradientPrecond 结果报错了,居然报错了:./conjugateGradientPrecond: error while loading shar原创 2013-09-26 13:59:22 · 6072 阅读 · 0 评论 -
Linux下链接相互依赖的.a文件遇到undefined reference问题总结
最近,在Linux下静态链接多个相互依赖的.a文件时,遇到各种诡异的undefined reference问题,最后发现,是.a文件的链接顺序竟然非常重要!转载自:http://ticktick.blog.51cto.com/823160/431329最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:1转载 2013-10-14 02:07:34 · 1800 阅读 · 0 评论 -
GCC编译多个C文件
下午做了一个小的程序,定义了三个文件:getop.h,getop.c,calcDemo.c显然getop.h是针对getop.c的,而在calcDemo.c中要调用到getop.c中的东西。首先给出每个文件的结构图,为了更简单的说明,函数都空实现。getop.h:#ifndef _H_GETOP#define _H_GETOP int getch(void)转载 2013-04-21 22:43:56 · 2616 阅读 · 0 评论 -
#ifndef#define#endif 和 ifdef#endif 的用法(整理) 原作者:icwk
#ifndef 头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。 还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的: #ifnd转载 2012-11-21 16:10:46 · 4519 阅读 · 0 评论 -
strcmp
原型:extern int strcmp(const char *s1,const char * s2); 用法:#include string.h> 功能:比较字符串s1和s2。 一般形式:strcmp(字符串1,字符串2) 说明: 当s1 当s1==s2时,返回值=0 当s1>s2时,返回值>0转载 2012-12-28 23:34:03 · 518 阅读 · 0 评论 -
C 内存分配
1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3转载 2012-05-04 10:37:13 · 766 阅读 · 0 评论 -
fedora16 cuda配置
用 lspci | grep -i nvidia 可以查看Linux发行版的系统属性 用 uname -m && cat /etc/*release 确定正在运行系统的发行版和版本号 用 gcc --version 验证GCC是否正确安装,主要是看GCC的版本是否支持CUDA了,这个要运行CUDA程序时才能看到吧,我装4.1的CUDA时发现GCC必须是4.6版本以原创 2012-09-02 16:38:39 · 564 阅读 · 0 评论 -
CUDA by Example 4.2.2 一个有趣的例子之 CPU_bitmap.h解析
在《CUDA by Example》4.2.2中有一个很有趣的例子,里面用到了两个头文件,由于我里面的代码实在看不懂,咱就先来研究一下这段代码的头文件吧. 这篇主要讲的是 CPU_bitmap.h 这个头文件,在这个头文件里还包含了一个头文件,欲知详情,请参看:http://blog.csdn.net/fulva/article/details/8208229,gl_helper.原创 2012-11-26 20:54:15 · 5720 阅读 · 0 评论 -
《cuda by example》 book.h 头文件解析
cpu_bitmap.h 头函数解析 blog.csdn.net/ghost129/article/details/4409565都是一些函数,等用到的时候再过来解析,哈哈!#ifndef __BOOK_H__#define __BOOK_H__#include /* cuda检错程序 */static原创 2012-11-26 21:15:05 · 6049 阅读 · 0 评论 -
CUDA by Example 4.2.2 一个有趣的例子 之 #include "gl_helper.h"
参考链接:http://code.google.com/p/snp-gpgpu/source/browse/trunk/f/common/gl_helper.h?r=4/*看不懂头两行和最后一行是做什么事情的时候,参考 http://blog.csdn.net/fulva/article/details/8208312 */#ifndef __GL_HELPER_H__#defi翻译 2012-11-21 16:45:22 · 3642 阅读 · 0 评论 -
C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?
一般情况下,你这两个语句运行的结果是相同的,没有区别,只有一下情况才有区别:运行你的程序的时候,命令行上把输出结果进行的转向,比如使用下面的命令把你的程序a.c运行的结果转向到记事本文件a.txt:a.exe > a.txt在这样的情况,如果使用printf输出错误信息,会保存到a.txt文件里面,如果使用fprintf输出错误,会显示在屏幕上。转载 2012-12-28 19:40:44 · 1444 阅读 · 0 评论 -
fopen vs fopen64
fopen64是linux特有 的,fopen64()函数和fopen()函数相同的,只是底层的文件描述符创建是带有O_LARGEFILE标志。fopen64()函数为了加载大型文件所做的扩展。fopen returns FILE*, stream.fopen64 returns int, file descriptor 通常情况下,我们用fopen()函数来读问翻译 2012-12-28 20:35:41 · 11534 阅读 · 1 评论 -
fgets函数
原型是char *fgets(char *s, int n, FILE *stream);参数: *s: 字符型指针,指向将存储到的数据地址。 n: 整型数据,将从流中读取 n - 1 个字符。 *stream: 指针数据,欲读取的流。功能: 从文件指针stream中读取n-1个字符,存到以s为起始地址的空间里,直到读完一行,如果成功则返回s的指针,否则返回转载 2012-05-09 19:43:31 · 769 阅读 · 0 评论 -
strncmp 串比较
函数名: strncmp 功 能: 串比较 用 法: int strncmp(char *str1, char *str2, int maxlen); 说明:此函数功能即比较字符串str1和str2的前maxlen个字符。如果前maxlen字节完全相等,返回值就=0;在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则返回(str1转载 2012-12-28 23:12:09 · 593 阅读 · 0 评论 -
tolower 把字符转换成小写字母,非字母字符不做出处理
头文件:在VC6.0可以是ctype.h或者stdlib.h,常用ctype.h用 法: int tolower(int c);说明:和函数int _tolower( int c );功能一样,但是_tolower在VC6.0中头文件要用ctype.hC程序例: #include #include #include #include int转载 2012-12-28 22:53:57 · 929 阅读 · 0 评论 -
sscanf 读,分配和修改字符串的函数
名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( const char *, const char *, ...); int sscanf(const char *buffer,const char *format,[argument ]...); buffer 存储的数据 format 格式控转载 2012-12-28 22:42:43 · 776 阅读 · 0 评论 -
Ubuntu12.04 cuda5.5安装
预处理步骤: 首先确认你的电脑装了一个可以运行CUDA程序的GPU。lspci | grep -i nvidia另外要确认linux版本和gcc版本具体参考链接:http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html下载Nvdia Toolkit 下载链接:http://原创 2013-09-16 14:12:18 · 6185 阅读 · 2 评论