C/C++
大智_Unity玩家
这个作者很懒,什么都没留下…
展开
-
Win32下显示、隐式加载DLL的方法
使用动态dll有两种方法,一种是隐式链接,一种显示链接,如果用loadlibrary就是显示链接,用lib就属于隐式链接。两种方法对于你的程序调用动态库时没有任何区别,只是你在编程时,步骤是不一样的。显式调用麻烦了点,但可以没有相应的lib库;隐式调用,使用起来比较简单,有函转载 2011-10-17 22:20:14 · 1843 阅读 · 1 评论 -
11.10金山面试内容
1、运行时类型识别运行时类型识别(RTTI)即是程序执行过程中知道某个对象属于某个类,我们平时用C++编程接触的RTTI一般是编译器的RTTI,即是在新版本的VC++编译器里面选用“使能RTTI”,然后载入typeinfo.h文件,就可以使用一个叫typeid()的运算子,它的地位与在C++编程中的sizeof()运算子类似的地方(包含一个头文件,然后就有一个熟悉好用的函数)。typdid原创 2011-11-10 11:41:46 · 525 阅读 · 0 评论 -
11.1金山游戏开发笔试
1、int main(){ int i; (i=1,i=10)?i++||++i:++i; printf("%d",i); getchar();}答案:11. 解释:逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为表达式1,表达式2,表达式3……表达式n求解过程是:先求解表达式1,再求解表达式2,...。整个逗号表达式的值是最后一个表达式n的值。然后就是原创 2011-11-02 14:22:03 · 1617 阅读 · 0 评论 -
vector使用中可能出现的一个陷阱
今天写了一些小东西,由于平时习惯用vector,在存储一个数据时就用了vector,并且类中的一个指针成员保存了这个vector其中的一个数据。运行时发现有些指针会指向垃圾值,赶紧看了下代码有没有内存溢出的地方,经过调试发现是vector搞的。 Vector在内存空间上是连续空间,当你不断push_back时,可能会由于空间不足而去重新开辟空间,导致原有的空间释放,则原来保存的指针原创 2012-12-28 00:04:36 · 862 阅读 · 0 评论 -
memset初始化类对象出错解析
void *memset(void *s, int v, size_t n); 英文释义如下:Copies the value v (converted to type unsigned char) to the first n bytes pointed to by s; returns s. 这里s可以是数组名,也可以是指向某一内在空间的指针;v为要填充的值;n为要填充的字节数原创 2012-04-07 00:11:54 · 1093 阅读 · 0 评论 -
explicit构造函数
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但是有转载 2012-03-20 10:12:09 · 346 阅读 · 0 评论 -
memcached简单的使用教程
memcached简单的使用教程这是工程应用性质的文章:memcached是数据快速存取的工具,wikipedia和facebook就用了它提高速度。具体情况可以wiki.c/c++里面使用memcached本来是很简单的事情,但就是没有人说,非要我去读libmemcache的实例代码才行,manpage也没有说清楚(但还不得不看)。如果要使用memcached,步骤如下:转载 2012-03-15 17:07:38 · 1034 阅读 · 0 评论 -
Memcached在Windows下的安装
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap转载 2012-03-15 17:14:19 · 1514 阅读 · 0 评论 -
Redis与Memcached的比较
Redis与Memcached的比较 1.网络IO模型 Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描述字pipe 传递给worker线程,进行读写IO, 网络层使用libevent封装的事件库,多线程模型可以发挥多核作用,但是引入了cache coherency和锁的问题,比如,Memcached最转载 2012-03-15 22:56:10 · 524 阅读 · 0 评论 -
InterlockedIncrement
InterLockedIncrement 举个例子:如果一个变量 Long value =0; 首先说一下正常情况下的加减操作:value+=1; 1:系统从Value的空间取出值,并动态生成一个空间来存储取出来的值; 2:将取出来的值和1作加法,并且将和放回Value的空间覆盖掉原值。加法结束。 如果此时有两个Thread ,分别记作threa转载 2012-03-14 15:41:48 · 1180 阅读 · 0 评论 -
c++笔试必考内容:const使用详解
关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,现将本人的一些体会总结如下,期望对大家有所帮助: 一 const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500;const int* a = &b; [1]int const *a = &b; [2]int* cons转载 2011-11-02 15:19:23 · 583 阅读 · 0 评论 -
C++笔试必考内容:C/C++内存对齐
C/C++内存对齐 一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同转载 2011-10-28 00:18:27 · 1003 阅读 · 1 评论 -
C++空类默认函数
定义一个空的C++类,例如class Empty{}一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于class Empty{public:Empty(); // 缺省构造函数Empty( const Empty& ); // 拷贝构造函数~Empty(); // 析构函数转载 2011-10-28 17:36:42 · 390 阅读 · 0 评论 -
昆仑万维C++工程师笔试
1.今天做笔试题的时候,想当然的认为类的成员函数是占4字节的指针,刚才试了下发现完全错了。#include class Data{public: Data(); ~Data(); char a; short b; int c;};void main(){ printf("%d",sizeof(Data)); getchar();}关于字节对齐问题相比都不用多原创 2011-10-28 00:00:48 · 1923 阅读 · 0 评论 -
10.30完美笔试题
1、struct test{ short a; int b; char c;};sizeof(struct test)答案为:122、#define P(a,b) a&b#define Q P(3,2)<<P(3,1)#undef P#define P(a,b) a+bvoid main(){ printf("%d",Q);原创 2011-10-30 17:51:44 · 1638 阅读 · 2 评论