你必须知道的C语言预处理的问题详解
C语言预处理器执行宏替换、条件编译和文件包含。通常采用以“#”为行首的提示。下面是C语言预处理的应用场合:1.三字母词(Trigraph Sequences)C源程序的字符集被包含在7位的ASCII字符集中,但是它是ISO 646-1983 Invariant Code Set的超集。为了让程序可以
C语言预处理器执行宏替换、条件编译和文件包含。通常采用以“#”为行首的提示。下面是C语言预处理的应用场合:1.三字母词(Trigraph Sequences)C源程序的字符集被包含在7位的ASCII字符集中,但是它是ISO 646-1983 Invariant Code Set的超集。为了让程序可以
首先看一个例子:实现代码如下:#include using namespace std; class A{}; class B {int b;char c; }; class C {int c1;static int c2; }; int C::c2 = 1; class D:public C,p
1、实现代码如下:const char *str = "test测试test";while(*str){//这里只需要判断第一个字节大于0x80就行了,前提是输入的是合法的GBK字符串//原因在于,如果第一个字节大于0x80,那么它必然和后面一个字节一起组成一个汉字//所以就没有必要再去判断后面一个
首先,当考虑到内存分配和执行性能的时候,使用std::deque要比std::vector好。Deque总览deque和vector一样都是标准模板库中的内容,deque是双端队列,在接口上和vector非常相似,在许多操作的地方可以直接替换。假如读者已经能够有效地使用vector容器,下面提供de
区别C++中对于类来说,对于其中的成员,用点操作符.来获得,而对于一个指向类对象的指针来说,则用箭头操作符->调用该指针所指向对象的成员。当类定义->重载操作符后,则既可以用箭头操作符,也可以用点操作符。重载->操作符重载箭头操作符必须定义为类成员函数。没有显式形参(而且是类成员,
整数转换为字符串:char *itoa( int value, char *string,int radix);小数转换为字符串:sprintf(串, 格式控制符列, 数据);字符串转小数:double atof(const char *nptr);字符串转整数:int atoi(const cha
我在《Linux 多线程服务端编程:使用 muduo C++ 网络库》第 1.9 节“再论 shared_ptr 的线程安全”中写道:(shared_ptr)的引用计数本身是安全且无锁的,但对象的读写则不是,因为 shared_ptr 有两个数据成员,读写操作不能原子化。根据文档(http://ww
今天和同事说到C++模板会使代码膨胀, 可同事觉得不会。同事的依据是: 如果模板会使代码膨胀, 那么ATL和WTL里为什么还要大量使用模板? 同样功能 ,ATL和WTL编译出的可执行文件可比MFC编译的要小的多。我当时一愣 ,事实确实如同事所说,难道模板会使代码膨胀的观点是错误的吗?MFC因为本身代
尽管这个概念已经让人说滥了 ,还是想简单记录一下, 以备以后查询。实现代码如下:#ifdef _DEBUG#define DEBUG_CLIENTBLOCKnew( _CLIENT_BLOCK, __FILE__, __LINE__)#else#define DEBUG_CLIENTBLOCK#en
前言一直没有系统去看过c++,因为懂得一些c的基本语法,在实际编程中用到c++,只能用到哪些看哪些,发现这样虽然能够完成大部分工作,但是有时候效率实在太低,比如说这节要讲的Std::sort()函数的使用,调了半天才调通。开通c/c++序列博客是记录在使用c++中一些难题,避免以后重犯错,当然以后会