精品
文章平均质量分 91
zlingh
大家多多交流我邮箱是zhangping_bnu@qq.com
展开
-
C++对象的内存布局
C++对象的内存布局 内存布局是属于较深层次的知识,一般C++学习的书籍上不会专门讲解。而很多问题往深了讲都是不清楚内存布局的原理。最近有幸读到一本书,里面讲了一部分C++对象的内存布局,让我对很多以前的问题都豁然开朗了。书上篇幅较大,我加上自己的理解总结了下。 分为三部分:简单对象,单继承,多继承一:简单对象非静态成员变量和虚函数是决定类大小的原创 2013-08-21 23:19:55 · 869 阅读 · 0 评论 -
移位运算解决问题的例子
巧用(n-1)&n 可以让n二进制最低位的1变成01:判断一个数是否是2的次方bool f(int n){ return ((n-1)&n==0);}如果一个数是2的次方,那么这个数的二进制中就只有一个1。(n-1)&n可以让n二进制最低位的1变成0,如果n二进制只有一个1那么n做该种运算后就会变成0。2:求一个数二进制中1的位数int f(int n){int count=原创 2012-11-07 22:21:26 · 634 阅读 · 0 评论 -
CUDA纹理绑定
最近学习了下CUDA矩阵内存对齐分配的方法,主要是cudaMemcpy2D和cudaMallocPitch两个函数的用法,先看看cudalibrary中如何定义的这两个函数:cudaError_t cudaMallocPitch(void ** devPtr, size_t * pitch,原创 2013-11-18 22:10:47 · 4415 阅读 · 0 评论 -
不定参数函数
一:首先,java中的不定参数就是数组,test(Integer...args)可以换成test(Integer[]rgs) package com.bbsoft.test;public class TestManyArgs {public static Integer[] test(Integer... args) { if (args == null) {原创 2012-11-07 22:23:31 · 431 阅读 · 0 评论 -
C语言中可变参数函数实现原理浅析
1、C函数调用的栈结构 可变参数函数的实现与函数调用的栈结构密切相关,正常情况下C的函数参数入栈规则为__stdcall, 它是从右到左的,即函数中的最右边的参数最先入栈。例如,对于函数: void fun(int a, int b, int c) { int d; ... }其栈结构为 0x1ffc-->d转载 2013-09-04 15:31:27 · 971 阅读 · 0 评论 -
static作用(修饰函数、局部变量、全局变量)
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variable转载 2013-10-25 23:11:34 · 580 阅读 · 0 评论 -
CUDA相关资料
nVidia CUDA 简介 (2007/10/31)先针对 GPGPU 做简单的介绍,然后再对 nVidia CUDA 本身软体架构、程式执行架构、记忆体架构,做最基本的介绍。 版本演进CUDA 1.1 Release (2007/12/16)针对 CUDA 1.1 的更新,做一些基本的比较。 CUDA Beta 2.0 for Windows & Vista (20转载 2013-11-19 23:08:49 · 1718 阅读 · 1 评论 -
c语言中static用法和extern
c语言中static用法static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。int a ;int main(){ intb ; int c* =(int *)malloc(sizeof(int));}a是全局变量,b是栈变量,c是堆变原创 2012-11-07 22:24:42 · 537 阅读 · 2 评论