c/c++
imcomma
这个作者很懒,什么都没留下…
展开
-
c++数组的几个有趣性质
1.数组可以有负数下标这是我在数组中画圆时偶然发现的。如图,圆左边的一部分跑到右边去了。我猜这可能是负数下标的问题。按照“数组名存放的是数组第一个元素的地址”以及“数组下标表示的是偏移量”这两条理论,我进行了如下推理:对一个二维数组a[m][n],元素a[x][y]的偏移量计算公式:n*x+y。以往我都以为x,y必须是正数,但其实x,y不一定非要同时为正数,只要m*n>n*x+原创 2016-01-19 23:34:32 · 811 阅读 · 0 评论 -
字符串常量修改问题
最近在写操作系统,遇到了不少问题......谁叫我只有薄弱的c++基础和java基础呢。在正式开始写内核之前还要先了解makefile,链接器脚本,grub,gcc......这些东西之前闻所未闻,光了解这些东西都花了我两周时间(当然,这两周也在干其他事,分配给操作系统的时间不多)。不过万事开头难,既然决定要写,总得熬过最开始的艰难期。这周(开学第三周),我终于开始了内核之旅。 我是照着hu原创 2016-03-16 18:20:37 · 1223 阅读 · 0 评论 -
va_start和va_end使用详解
本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void foo(...);voi转载 2016-03-17 23:29:07 · 325 阅读 · 0 评论 -
对CImage类中GetPitch()和GetBPP()的理解
在CImage中,一行的数据如果不是4byte的整数倍,是要被强制补足成4byte的整数倍的。比如,一张355*120的彩色图片,在CImage中一行的数据偏移量(pitch),是 (355*3+3)/4*4 = 1068 byte。而width*bitCount = 355*3 = 1065 byte。所以计算一个像素点在内存中的位置时,不能用(y*width+x)*bitCount,要用y原创 2016-11-06 23:10:43 · 5764 阅读 · 0 评论 -
c语言使用stdin相关函数时一个蛋疼的问题
事情的起因是这样的,博主的一个高中同学在自学 c语言,看博主是读软件专业的,于是经常跑来问博主问题。一般博主都能轻松解决,不是因为c语言功力深厚,而是他问的那些东西实在太简单。尽管博主学的是c++,而且可怜的c++知识主要是从考前临阵磨枪以及一个简单的大作业中得来,但对付这些新手的问题还是绰绰有余的。不过这次遇到的问题碰到了博主的短板:输入输出。当时,考试不考,所以一直不懂。趁着这个机会,我补了一原创 2015-12-29 13:41:35 · 2231 阅读 · 0 评论 -
Nsight调试CUDA程序忽略断点
感觉任何一个框架在上手时都要踩不少坑啊。这几天我就又踩了CUDA的一个坑。现记录于下,供有需要的人参考。环境:win7 + CUDA7.5 + VS2012问题描述:使用CUDA编程时,在核函数内设置断点,用Nsight进行调试。点击Nsight->start CUDA debugging后,Nsight忽视断点,直接执行。项目文件是老师给的例子,使用VS2013创建。原创 2016-11-02 15:08:08 · 6954 阅读 · 0 评论 -
opengl 链接着色器时失败的一个可能原因:局部变量太大
今日写opengl程序时遇到一个奇怪的错误,百思不得其解。程序运行到glLinkProgram(program);时便崩溃,不知道是什么原因。最后我想,难不成是数组太大了?上网一查,vs最大局部变量为1MB。于是把堆栈区最大值改成10MB,问题解决。自己经常上stackoverflow,今天还真遇到stackoverflow的问题了......其实到这里还有一个问题没有解决,那就是我的局部变量原创 2016-10-26 17:07:26 · 1403 阅读 · 0 评论 -
fopen函数以‘rb’模式 和 ‘r’ 模式打开文件的不同
交互式计算机图形学——基于opengl着色器的自顶向下方法的附录中,给出了读取glsl的函数:char* readShaderSource(const char *path){ FILE *fp = fopen(path,"r"); if(fp==nullptr) return nullptr; fseek(fp,0,SEEK_END); int size = ftell(原创 2016-10-26 18:22:48 · 9276 阅读 · 0 评论