![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++Concept2
端午过后的猪
乌龟小白在路上...慢慢爬 ...
展开
-
c语言的预处理指令
c语言预处理指令:#if#ifdef:条件编译#ifndef#else#elif#endif#define#undef#line#error:当编译到该语句时,停止编译进行报错#pragma#include:包含头文件 以上被称为预处理指令正常的C代码在编译时经过编译器分析得到机器代码而预处理指令在编译前生效常用预处理指令的有头文件包含(#include)和条件编原创 2017-06-29 10:18:47 · 208 阅读 · 0 评论 -
string.h string cstring 区别
string.h 是 C 头文件,对应的是基于char*的字符串处理函数,如strcmp()等等string 是 C++ 头文件,是字符串类,需要加using namespace std;cstring是是 C++ 头文件,包含 C 字符串的处理函数,需要加using namespacestd。尽管在C++中包含string.h是允许的,但C++标准建议用头文件cstring来替原创 2017-06-29 10:24:15 · 230 阅读 · 0 评论 -
结构体在内存中的对齐规则
题:structst1{ struct st2{ inti; char c; charc; i原创 2017-06-29 10:23:05 · 202 阅读 · 0 评论 -
数据类型所占字节数
(一)32位平台:分为有符号型与无符号型。有符号型:short 在内存中占两个字节,范围为-2^15~(2^15-1)int 在内存中占四个字节,范围为-2^31~(2^31-1)long在内存中占四个字节,范围为-2^31~2^31-1无符号型:最高位不表示符号位unsigned short 在内存中占两个字节,范围为0~2^16-1unsigned int 在内存中占四个字节,原创 2017-06-29 10:23:02 · 2050 阅读 · 0 评论 -
数据驱动编程(转载)
数据驱动编程的核心数据驱动编程的核心出发点是相对于程序逻辑,人类更擅长于处理数据。数据比程序逻辑更容易驾驭,所以我们应该尽可能的将设计的复杂度从程序代码转移至数据。真的是这样吗?让我们来看一个示例。假设有一个程序,需要处理其他程序发送的消息,消息类型是字符串,每个消息都需要一个函数进行处理。第一印象,我们可能会这样处理: void msg_proc(const char *msg_原创 2017-06-29 10:21:22 · 334 阅读 · 0 评论 -
#ifdef __cplusplus ext…
#ifdef __cplusplusextern "C" {#endif*代码*#ifdef __cplusplus}#endif首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入"extern "C"{" 和 " }"处理其中的代码,其中{ }内部的代码是通过ext原创 2017-06-29 10:20:31 · 181 阅读 · 0 评论 -
C++中,两个头文件互相引用(转载)
定义了两个头文件//a.h#include"b.h"class a{ … b *b1;};//=========================//b.h#include "a.h"class b{ … a *a1;};这样子是编译不了;解决方式如下:解决方法一:(试过好用)不需要这么包含,除非必要,如果你只是想在另外一个类中定义一个类的原创 2017-06-29 10:20:20 · 1296 阅读 · 0 评论 -
【C++ Primer】静态链接库(l…
一,概念 1)静态链接库就是你使用的.lib文件,库中得代码最后需要连接到你的可执行文件中去,所以静态连接的可执行文件一般比较大一些。 使用方法 1> 格式如:#pragma comment(lib,"XXX.lib") 2> 针对开发环境:原创 2017-06-29 10:19:22 · 190 阅读 · 0 评论 -
C++用new和不用new创建类对象区别(…
起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高原创 2017-06-29 10:19:19 · 202 阅读 · 0 评论 -
c++多个源文件共用一个全局变量(e…
例子:头文件:state.h 源文件:state.cpp 其它源文件:t1.cpp t2.cpp t3.cpp, 这些源文件都包含头文件state.h。需要定义一个全局变量供这些源文件中使用:方法如下1、在 state.h声明全局变量: extern inta;2、在state.cpp中定义该全局变量:int a =10;这样其它源文件就可以使用该变量啦原创 2017-06-29 10:19:10 · 512 阅读 · 0 评论 -
c++中类对象不能访问类的私有成员…
类的成员变量分三种: public protect private 1、类的成员函数可以访问类这三类2、继承类成员函数可以访问 protect 类型3、只有本身类的成员函数才可以访问 private 类型 4、类的对象若在其他函数中是不可以访问类的 protect private类型变量 类其实是个模型。而对象就是找个这个模型制作的实体。比如,类是造车的图纸,对象原创 2017-06-29 10:19:07 · 2070 阅读 · 0 评论 -
#ifndef PRINT_H …
例一:print.h: 文件内容#ifndef PRINT_H#define PRINT_H#ifdef __cplusplusextern " C " {#endif //打印点东西void Print(int iNum); #ifdef __cplusplus}#endif #endif作用:为了防止头文件被重复包含:如头文件a.h中包含函数fa原创 2017-06-29 10:18:59 · 355 阅读 · 0 评论 -
c语言中“|”和“||”区别
一个竖杠“|”:表示运算的或;二个竖杠“||”:表示逻辑的或; c语言的位运算:~取反,0取反是1,1取反是0>>右移,类似左移,数值大小除以2的n次方&按位与,1与任意数等于任意数本身,0与任意数等于0,即1&x=x,0&x=0|按位或,x|y中只要有一个1则结果为1^按位异或,x^y相等则为0,不等则为1 c语言逻辑运算符:&& 逻辑与,不过一旦左边的表达式为假,不进行原创 2017-06-29 10:18:56 · 15145 阅读 · 1 评论 -
template < typename&nb…
template :定义一个模板函数var_name表示一个类型;在模版实例化时可以替换任意类型,不仅包括内置类型(int等),也包括自定义类型class。比如你想求2个int float 或double型变量的值,只需要定义这么一个函数就可以了,假如不用模板的话,你就必须针对每种类型都定义一个sum函数..int sum(int, int);float sum(float, floa原创 2017-06-29 10:18:53 · 235 阅读 · 0 评论 -
宏__cplusplus/////if define…
在C与C++混合编写的代码中,我们常常会在头文件里看到如下的声明: #ifdef __cplusplus //如果定义了表示是c++编译器extern "C"{ #endif // 在这里写标准c程序 #ifdef __cplusplus } #endif __cplusplus是c++编译器内部定义的宏,如果使用的c编译器__cplusplus不会被定义,所以它用来区分用原创 2017-06-29 10:18:50 · 420 阅读 · 0 评论 -
std::stringstream 用法
原文地址:用法">std::stringstream 用法作者:牛爸爸【本文来自】http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html使用stringstream对象简化类型转换C++标准库中的提供了比ANSIC的更高级的一转载 2017-06-29 10:24:24 · 418 阅读 · 0 评论