
C++:注意事项
lulu-lu
这个作者很懒,什么都没留下…
展开
-
sizeof的用法
1、sizeof的用法a、针对sizeof原创 2014-10-21 19:44:38 · 545 阅读 · 0 评论 -
良好的编程风格
if 和 else之后加上一对大括号,防止出现由悬挂“else”引起的问题。原创 2015-01-15 16:31:01 · 779 阅读 · 0 评论 -
字符串
字符集指一个系统支持的所有抽象字符的集合。常见的字符集主要有ASCII 字符集,Unicode字符集,GB2312字符集等。ASCII 字符集 该字符集存储字符个数有限,为了消除这个缺陷,使各种语言可统一编码,双字节编码应运而生。在双字节字符集中,一个字符可有1个或2个字节组成。这就是UTF编码,即通常所说的Unicode码。windows系统底层全部采用Unicode编码,原创 2015-01-16 20:58:56 · 430 阅读 · 0 评论 -
使用#define定义字面值和伪函数
#define是C语言提供的宏定义命令,能够为程序员提供一定方便,在一定程度上提高程序的执行效率。在程序中,有效范围为宏定义之后的本源文件结束,在此文件范围内有效。另外,用#undef可以终止宏定义的作用域,可灵活控制宏定义的作用范围。(1)#define定义的常量无数据类型,只是简单的字符替换,没了类型的安全检查,且有时还会产生边际效应。e.g:#define N100原创 2015-01-20 11:18:13 · 1451 阅读 · 0 评论 -
头文件重复包含
如果某个头文件被多次包含,则在VC编译器中编译,会抛出“重复定义”错误。为了避免同一个文件被重复包含多次,C++提出了2种解决方案。1、#ifndef _SOME_FILE_H #define _SOME_FILE_H …… …… #endif //在文件末端2、#pragma one ……原创 2015-01-20 11:39:38 · 424 阅读 · 0 评论 -
struct 与class的关系
1、花括号初始化class和struct 如果定义了构造函数,则都不能用花括号进行初始化,若无,则可以用花括号进行初始化。struct A{int x;int y;} A a={1,2};2、默认访问权限struct 默认访问权限是public;class 默认访问权限是private;3、默认继承方式struct 默认继承方式是public;class原创 2015-03-04 10:50:39 · 480 阅读 · 0 评论 -
cmake和make区别(转载)
大家都知道,写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编转载 2016-10-10 11:41:02 · 505 阅读 · 0 评论 -
值得推荐的C/C++框架和库 (真的很强大)
又要开始搞C++了~~值得学习的C语言开源项目- 1. WebbenchWebbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http转载 2017-06-18 23:06:05 · 8322 阅读 · 1 评论 -
Json 解析
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括转载 2017-06-18 23:16:13 · 1425 阅读 · 0 评论 -
内联函数与宏
求两个整数和的宏#define Sum(nNoA,nNoB)((nNoA)+(nNoB))宏在预处理时把宏代码展开,不需要类似函数似的保存现场和恢复现场,执行效率而言更高。这也是C语言中大量使用宏的原理。宏也有两面性,如宏不能访问对象的私有成员;容易引起二义性。内联函数是C++为了提高函数的执行效率而引进的一种特殊的函数。避免了宏的一些负面效应。隐式内联:Class原创 2015-01-16 10:08:41 · 844 阅读 · 0 评论 -
goto
goto 的反对声音很多,但是也不能否认goto的各种优点第一种情况:跳出多层嵌套的循环。 由于break语句只影响包围它的最内层循环,如欲从深层循环跳出只有一种方法,那就是使用goto语句。while(condition1){while(condition2){while(condition3){if(some d原创 2015-01-15 17:21:58 · 704 阅读 · 0 评论 -
如何降低函数的圈复杂度
圈复杂度就是统计一个函数有多少个分支(if,while,for等)每增加一个分支,复杂度加1。简单来说,就是相当于需要多少个测试用例才能对这个函数做到全路径覆盖。计算方法:(1)由1计算,一直往下通过程序。(2)一旦遇到以下关键字或同类的词,如if ,while,repeat,for,and ,or,CC加1。(3)switch-case语句的每一种情况加1。降低函原创 2015-01-16 17:19:43 · 9536 阅读 · 0 评论 -
const修饰指针和引用的用法
const修饰指针和引用的用法,对于初学C++的人直是讳莫如深,不知所云. 一旦你了解了其用法,一切便不值一哂了.下面我为读者一一释疑: 大致说来其可分为三种情况: const修饰指针,const修饰引用,const修饰指针的引用. 1.const修饰指针 const修饰指针又可分为三种情况: a.const修转载 2014-10-23 14:17:11 · 552 阅读 · 0 评论 -
数组和指针,怎么去理解?
指针的类型,支持的操作,以及用const修饰指针原创 2014-10-22 16:35:39 · 753 阅读 · 0 评论 -
局部变量和全局变量的差别
全局变量、静态全局变量、静态局部变量和局部变量全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域局部变量存放在内存的栈区。全局变量、静态变量如果没有手动初始化,则有编译器初始化为0。局部变量是编译器永远不会初始化的变量,如果没有手动初始化,局部变量的值为随机值。原创 2014-10-17 20:06:20 · 543 阅读 · 0 评论 -
C++注意事项——1、确保每个对象在使用前已被初始化
C是”接近机器的“,C++是接近问题的。原创 2014-10-17 15:19:36 · 660 阅读 · 0 评论 -
用C++语言,调用标准C语言编译器编程的库
当我们调用的函数实现是*.c,而不是*.cpp时,往往会出现原创 2014-10-17 14:53:51 · 826 阅读 · 0 评论 -
2、掌握变量定义的位置与时机
string GetSubStr(){}原创 2014-10-18 09:32:11 · 464 阅读 · 0 评论 -
new/delete与malloc/free的区别
1、new/delete在管理内存的同时会diaoy原创 2014-10-21 14:26:42 · 374 阅读 · 0 评论 -
位操作与逻辑操作符号的区别
要记住逻辑与和为与的区别:int i=1;int j=2;i&j=?i&&j=?i &j =0; 0001&&0010=0i&&j=TRUE; 还需要切记的是,逻辑与&& 和 逻辑或 || 具有短路求值特性。需注意使用。即 i&&j,如果i为false,则不计算b,该式为False原创 2015-01-15 16:10:03 · 879 阅读 · 0 评论 -
cout 与wcout
std:: cout是C++的标准输出流对象,对应的unicode对象是std:: wcout。根据测试,在unicode字符集下编译,std:: cout可以输出多字节字符串,但不能输出unicode字符串(std:: cout打印unicode字符串只能输出一个16进制数);无论是在unicode字符集下编译还是在多字节字符集下编译,std:: wcout均能输出多字节转载 2017-12-05 16:06:54 · 1532 阅读 · 0 评论