随笔分类 - c++
摘要:近段时间做一个关于水面的动画。由于我用c++实现水面动画的,然而使用c++我自己的渲染系统渲染结果被同学说是可视化不叫渲染,所以我决定修改一下……恰好进来在学习pbrt,所以索性就蛋疼了考虑直接用pbrt来渲染吧……(至于为什么,仅为好玩儿……)pbrt默认的渲染方式是使用一个场景描述文件.pbrt...
阅读全文
摘要:原文:http://blog.csdn.net/tanlijun37/article/details/1948493vector中对象指针的排序,初步想法是1: 把对象指针存到vector,重载bool operator(对象指针)2:用sort来排序例:class A{public: bool o...
阅读全文
摘要:定义wrap类,声明native函数,加载库package com.ndk.hello;public class Classs { public native String say_hello(); static { System.loadLibrary("Hello...
阅读全文
摘要:gcc的编译流程分为四个步骤,分别为:预处理(Pre-Processing)编译(Compiling)汇编(Assembling)链接(Linking) 以hello.c为例子,在这四个步骤中可以设置选项分别生成hello.i, hello.s, hello.o以及最终的hello文件: he...
阅读全文
摘要:[参数详解]-c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例子用法: gcc -c hello.c 他将生成.o的obj文件-S 只激活预处理和编译,就是指把文件编译成为汇编代码。 例子用法 gcc -S hello.c 他将生成.s的汇编代码,你可以用文本编辑器...
阅读全文
摘要:#define A B C 如果使用A将会替换成B C,使用A B会得到B C B#define A (B C)如果使用A将会替换成(B C)注意上面加括号与不加是完全不同的,特别是在定义函数和函数指针的时候。下面例子:#defineBASSDEF(f)(WINAPI*f)// define the...
阅读全文
摘要:#define LOADBASSFUNCTION (f) *((void **)&f)=(void*)GetProcAddress (hBass,# f)这一句话使用*((void**)&f)的原因在于,转化目标为左值(即转化f为void*类型(*)的函数指针)。注意这里的(void**)强制类型转...
阅读全文
摘要:必须注意:对齐是多少字节对齐,不是多少位对齐。对齐原因:如上图片,内存一般是四个单位一列,CPU在读取内存数据的时候,通过总线并行读取每个单位的数据。对于CPU 32bit的寄存器而言。0-7bit是来自于内存芯片0的位8-15bit是来自内存芯片1的位16-23bit是来自芯片224-31来自芯片...
阅读全文
摘要:POD(Plain Old Data)概念:Arithmetic types (3.9.1), enumeration types, pointer types, and pointer to member types (3.9.2), and cv-qualified(注2) versions o...
阅读全文
摘要:首先要注意:do..while(0)代表do里面的东西至少被执行一次,在这里仅仅执行一次。此种用法有三个用处:代替{}代码块,实现局部作用域。在某些宏定义时非常有用:#define f(x) do {\ some_code; some_code;} while(0)(while(0)...
阅读全文
摘要:问题:在网上看人写了这么一段代码: 1 class A 2 { 3 public: 4 A() 5 { 6 std::cout #include "A.h" 29 30 void* operator new[](size_t size) ...
阅读全文
摘要:精髓:operator new()完成的操作一般只是分配内存;而构造函数的调用(如果需要)是在new运算符中完成的。operator new和new 运算符是不同的,operator new只分配内存,而只要new出现无论是不是operator new都会调用new运算符从而调用析构函数。例子是:#...
阅读全文
摘要:一、malloc/calloc名称:Malloc/calloc功能:动态内存分配函数头文件:#include函数原形:void*malloc(size_tsize);void*calloc(size_tnum,size_tsize);参数:size分配内存块的大小num 分配内存块的个数返回值:成...
阅读全文
摘要:最近写程序忽然发现了一些错误,运行总是报Heap corruption detected.断点单步发现总是在delete的时候出错。以前也出现过,不过没啥注意,现在想留着是个大大的心病!于是上网查了相关资料:下面是转载资料:http://www.cppblog.com/kerlw/archive/2...
阅读全文
摘要:#define LOADBASSFUNCTION (f) *((void **)&f)=( void*)GetProcAddress (hBass,# f)这一句话使用*((void**)&f)的原因在于,转化目标为左值(即转化f为void*类型(*)的函数指针)。注意这里的(void**)强制类型转换仅仅只是重新声明了指针解引用的方式,并没有提升指针的引用层级。意思上*((void**)&f)与f是相等的(忽略(void**)只看*&f就知道这本质上就是先取地址再解引用)。但是不能直接使用f,因为一个函数名不能做左值(要做左值必须指针化,也就是变成函数指针)。
阅读全文

浙公网安备 33010602011771号