C/C++
文章平均质量分 84
么幺
这个作者很懒,什么都没留下…
展开
-
机器大小端判断
关于大小端的解释:这里,解释的挺清楚。测试代码:#include using namespace std;int main(){ union MyUnion { char c[4]; int s; } ; union MyUnion a; a.s = 0x90AB12CD; for(int i=0;原创 2013-07-28 14:18:19 · 636 阅读 · 0 评论 -
C++的拷贝构造函数与赋值构造函数
参考:C++ 拷贝构造函数和赋值构造函数一、简单说明在C++中,如果我们定义一个空类,编译器会默认为我们自动生成以下四个函数:1、默认构造函数 2、析构函数 3、拷贝构造函数4、赋值构造函数。通常情况下,我们都会显式的定义默认构造函数和析构函数,但是,如果类的成员变量中存在指针变量,一般我们需要显式的定义拷贝构造函数和赋值构造函数,目的是为了避免浅拷贝造成的内存重复释放问题。转载 2013-08-07 13:11:12 · 608 阅读 · 0 评论 -
Google C++ 编程风格学习
《Google C++编程风格指南》出来有一段时间,最近才得以静下心来看,现记录一下在以后编码中值得注意的部分,对于一些已经普遍认可或约定成文的规则,就不再过多说明。参考:《Google 开源项目风格指南》一、头文件1、尽量使用前置声明,避免头文件依赖的多米诺效应;2、逻辑简单的短小函数可以使用内联函数来提高效率;3、确定函数输入输出参数的顺序,并在项目中保持一致;4、头文原创 2013-09-18 16:12:18 · 989 阅读 · 0 评论 -
C++类的占用空间
面(笔)试的时候经常碰到求C++类的占用空间的问题,尤其是包含了虚函数的单一继承和多重继承时类的占用空间,这里作一下简单的测试和说明。一、空类的占用空间 空类的占用空间为1个字节,《深度探索C++对象模型》是这样说的:“那是被编译器插进去的一个char ,使得这个class的不同实体(object)在内存中配置独一无二的地址”,也就是说空类的这个char是用来标识类的不同对象原创 2013-10-17 18:17:08 · 872 阅读 · 1 评论 -
静态map成员的一种替代方法
问题场景有一个task接口类,存在一个对task操作的op_proxy静态函数,task可能有多种不同类型的操作,现在要实现这个op_proxy,原型为:int op_proxy(const std::string &task_id, const std::string &op_type); if else之类的太“俗”了,想通过一种更为优雅的方式来实现,有什么方法?解决方法一般来说可以这么做,在t原创 2015-11-13 14:20:24 · 2526 阅读 · 0 评论 -
Apache下root权限运行CGI
问题场景Apache默认是以daemon用户(或者其他other用户)和daemon用户组启动的,所以其worker进程也是daemon权限的,这样,worker进程fork的CGI进程,以及CGI再fork的子进程,都是daemon权限的。如果想在CGI或者CGI子进程中操作一些需要root权限的文件或者命令,就会报权限错误。 Apache其实也可以通过root权限来启动,需要在编译时加入特定选原创 2015-11-18 23:01:48 · 3719 阅读 · 1 评论