
C/C++
code09
这个作者很懒,什么都没留下…
展开
-
C/C++笔试题
C++笔试(1)1.求下面函数的返回值(微软) int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999。 答案:8 思路:将x转化为2进制,看含有的1的个数。 2. 什么是“引用转载 2009-03-12 19:42:00 · 842 阅读 · 0 评论 -
C++ virtual使用总结
案例一:class A{public: virtual void print(){ printf("A::print"); };};class B : public A{public: virtual void print(){ printf("B::print"); };};voi原创 2010-02-11 09:40:00 · 704 阅读 · 0 评论 -
常用的 预定义宏
一、介绍预定义宏 "_MSC_VER" 1、_MSC_VER是微软C/C++编译器——cl.exe编译代码时预定义的一个宏。需要针对cl编写代码时, 可以使用该宏进行条件编译。 2、_MSC_VER的值表示cl的版本。需要针对cl特定版本编写代码时, 也可以使用该宏进行条件编译。 3、_MSC_VER的类型是"int",具体版本号定义如下:原创 2010-03-08 22:21:00 · 3642 阅读 · 0 评论 -
【转】C++箴言:避免构造或析构函数中调用虚函数
转载:http://www.china-b.com/kaoshi/kjsj/20090317/942163_1.html 如果你已经从另外一种语言如C#或者Java转向了C++,你会觉得,避免在类的构造函数或者析构函数中调用虚函数这一原则有点违背直觉。但是在C++中,违反这个原则会给你带来难以预料的后果和无尽的烦恼。正文我想以重复本文的主题开篇:不要在类的构造或者析构函数中转载 2010-01-08 09:39:00 · 427 阅读 · 0 评论 -
【转】神奇的xx宏
转载时请注明出处和作者联系方式作者联系方式:李先静 前段时间研究lcc,看见token.h里有这样一些代码:xx(FLOAT, 1, 0, 0, 0, CHAR, "float")xx(DOUBLE, 2, 0, 0, 0, CHAR, "double")xx(CHAR, 3, 0, 0, 0,转载 2011-06-30 11:57:00 · 719 阅读 · 0 评论 -
六款常用的linux C/C++ IDE
原文:http://www.lupaworld.com/article-210675-1.html一、AnjutaAnjuta是一个多语言的IDE,它最大的特色是灵活,同时打开多个文件,内嵌代码级的调试器(调用gdb),应用程序向导(Application wizards)可以方便的帮助你创建GNOME程序而不需要你自己写一些与你兴趣无关的代码。配置C/C++环境请看这转载 2013-01-03 21:58:11 · 511 阅读 · 0 评论 -
[转] 一个fork的面试题
原文: http://coolshell.cn/articles/7965.html前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下。这个题是这样的:题目:请问下面的程序一共输出多少个“-”?12345转载 2013-06-14 15:39:03 · 920 阅读 · 0 评论 -
环形缓冲区(ring buffer),环形队列(ring queue) 原理
1. 序言环形缓冲区(ring buffer),环形队列(ring queue) 多用于2个线程之间传递数据,是标准的先入先出(FIFO)模型。一般来说,对于多线程共享数据,需要使用mutex来同步,这样共享数据才不至于发生不可预测的修改/读取,然而,mutex的使用也带来了额外的系统开销,ring buffer/queue 的引入,就是为了有效地解决这个问题,因其特殊的结构及算法原创 2014-02-28 17:43:40 · 20280 阅读 · 0 评论 -
LINUX C中如何定义可变参数的宏
转载:http://darksun.blog.51cto.com/3874064/1379569一般在调试打印Debug信息的时候, 需要可变参数的宏. 从C99开始可以使编译器标准支持可变参数宏(variadic macros), 另外GCC也支持可变参数宏, 但是两种在细节上可能存在区别.1. __VA_ARGS____VA_ARGS__ 将 "..." 传递给宏 . 如转载 2016-12-14 09:34:33 · 510 阅读 · 0 评论 -
C++类函数深入理解
最近在做Android 播放器的项目,native 需要用到C++,遇到一个有意思的问题,先mark下。先看一段代码:class A{public: int v; public: A():v(0){} void print() const { printf("%s enter. this=%p\n", __func__, thi原创 2017-08-06 08:24:49 · 889 阅读 · 0 评论 -
c语言小代码——对齐
c语言小代码——对齐一、对齐用于对齐:向上对齐和向下对齐:#define ROUND_UP(x, align) (((int) (x) + (align - 1)) & ~(align - 1))#define ROUND_DOWN(x, align) ((int)(x) & ~(align - 1))用于检查是否已经对齐:#define ALIGNED转载 2017-08-23 14:09:05 · 1769 阅读 · 0 评论 -
C/C++试题(笔记)
1、bool、float、指针变量与"零值"比较的if语句?答:bool flag; if(flag),if(!flag)char *p; if(p==NULL),if(p!=NULL)float x; const float EPSILON = 1e-6;if((x>=-EPSILON)&&(xif((xEPSILON)) //(+INFINITE~0.0原创 2009-09-21 11:32:00 · 3620 阅读 · 0 评论 -
【转】float和double类型的内存分布和比较方法收藏
文章出处:http://www.diybl.com/course/3_program/c++/cppsl/2008629/129103_2.htmlC/C++的浮点数据类型有float和double两种。 类型float大小为4字节,即32位,内存中的存储方式如下: 符号位(1 bit) 指数(8 bit) 尾数(23 bit)转载 2009-09-21 12:02:00 · 613 阅读 · 0 评论 -
类的静态常量初始化
class A{private: static const int a = 0; //正确 static const char b = b; //正确 const int c = 0; //错误,非static const不能在类里面初始化 static const int d[10] = {0}; //错误,只有一般数据类型原创 2009-04-06 11:20:00 · 2872 阅读 · 0 评论 -
void 指针问题
void *p = new ClassA();delete p; //错误。不会调用ClassA的析构函数delete (ClassA*)p; //正确。指明指针类型 ClassA *lpA = new ClassA();void *q = lpA;delete q; //错误。不会调用ClassA的析构函数delete (ClassA*)q; //正确。指明指针类型 class原创 2009-05-06 13:55:00 · 685 阅读 · 0 评论 -
函数指针数组
//普通函数指针数组void f1(int a){ printf("f1=%d/n",a); };void f2(int a){ printf("f2=%d/n",a); };void (*fun[2])(int); //[]的优先级高于*,所以这是一个指针数组void main(){ fun[0] = f1; //函数指针数组初始化 fun[1] =原创 2009-07-21 10:18:00 · 434 阅读 · 0 评论 -
位段操作问题
struct A { unsigned char a:4; unsigned char b:2; unsigned char c:2; }; char ch = 0x45; //0100,0101 struct A *aa = (struct A*)&ch;《C程序设计》-谭浩强 P306 图12.6所示原理,struct A 的内存分布如下:0原创 2009-08-04 17:46:00 · 426 阅读 · 0 评论 -
【转】操作符重载手册
原文:http://www.adintr.com/program/article/05.oper.html?jdfwkey=knyk62 一、重载规则I.可以重载的操作符+-*/%^&|~!=>转载 2009-05-26 16:09:00 · 452 阅读 · 0 评论 -
【转】在主线程中慎用WaitForSingleObject或WaitForMultipleObjects
原文:http://www.cnblogs.com/jcss2008/archive/2009/02/23/1396803.html 下面的代码我调试了将近一个星期,你能够看出什么地方出了问题吗?线程函数:DWORD WINAPI ThreadProc( while(!bTerminate) {转载 2009-08-10 09:47:00 · 945 阅读 · 1 评论 -
使用fwrite,fread需要注意的问题
表头文件 #includefwrite(将数据写至文件流)定义函数 size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);函数说明 fwrite()用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr 指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。Fwrit原创 2009-06-12 15:41:00 · 4749 阅读 · 0 评论 -
全局类对象、静态全局类对象、静态成员类对象、静态局部类对象 的构造和析构过程
// Test_VC6Dlg.h : header fileclass AClass{public: AClass(const char* obj) { sprintf(p,"%s",obj); TRACE(p); TRACE(" : Constructor/n"); }; ~AClass() {原创 2009-06-19 10:29:00 · 2246 阅读 · 0 评论 -
【转】XML文件的解析--libxml库函数解释
libxml(一) 摘要 Libxml是一个有免费许可的用于处理XML、可以轻松跨越多个平台的C语言库。这个指南提供它的基本函数的例子。绪论 Libxml是一个实现读、创建及操纵XML数据功能的C语言库。这个指南提供例子代码并给出它基本功能的解释。在这个项目的主页上有Libxml及更多关于它转载 2009-09-11 16:56:00 · 658 阅读 · 0 评论 -
关于重载全局new/delete 的一些问题
重载全局new/delete的做法,网上已经可以搜到很多,不再赘述。p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #ba2da2}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000}p.p3 {margin:原创 2017-09-14 16:12:16 · 533 阅读 · 0 评论