stpeace的专栏

接纳自己,提升认知,拥抱不确定性。

救命的全局变量?

先啥也不说, 把实际的复杂场景抽象如下: #include using namespace std; typedef enum { UNDEF_F, F1, F2, F3, }FLAG; void base(int x, FLAG flag) { cout << x &...

2015-03-30 23:05:19

阅读数:5222

评论数:0

公网ip地址w.x.y.z可以用在局域网内吗?

任何计算机网络的教材把什么A, B, C, D, E这几类地址已经讲烂了, 我就不想再嚼了。 本文只为搞清一个问题:公网ip地址w.x.y.z可以用在局域网内吗?        那一年, 我第一次在局域网内用类似于117.1.1.2这样的地址, 于是纳闷了一会儿, 这好像是个公网地址啊! 好, 在...

2015-03-30 22:18:50

阅读数:6341

评论数:4

存mac地址实际上用6个字节/字符就OK了

最近发现很多地方都是用6个字节来存mac地址, 仔细想了一下, 觉得还不错, 挺有意思的, 所以下面我也来玩一下: #include using namespace std; int main() { unsigned char mac[6] = {46, 75, 243, 56, 23...

2015-03-29 23:54:26

阅读数:7735

评论数:0

默认的类类型转换

我们知道, int, float,doulbe等之间可以进行隐式的转换, 那么这些内置类型可以转化为类类型么? 我们来看看程序吧: #include using namespace std; class A { public: int x; int y; int z; public: ...

2015-03-29 21:47:59

阅读数:5266

评论数:0

C++ Primer 第五版中的Sales_data类---用来模拟Sales_item类的实现

最近又在复习C++, 看到C++ Primer第五版, 感觉很好, 各种讲述很是引人入胜。 作者先讲述了int的情况, 然后抽象地讲述了Sales_item类, 然后企图用Sales_data类的实现过程来逐步介绍Sales_item类的实现, 逻辑很清晰。 下面, 我们来直接看一下Sales_d...

2015-03-29 13:56:24

阅读数:7942

评论数:4

Windows下利用C语言程序设置环境变量---能否用环境变量实现进程间的通信?

先看什么是环境变量吧, 在Windows的cmd中, 我们输入一下set命令, 得到: C:\Documents and Settings\Administrator>set ALLUSERSPROFILE=C:\Documents and Settings\All Users APPDAT...

2015-03-27 23:57:47

阅读数:7896

评论数:2

网卡的IFF_UP 和 IFF_RUNNING 的差别在哪?

由于没有找到最原始的位置, 所以我只能给出一个间接地址:http://blog.csdn.net/zqt520/article/details/17567053        摘录如下:      对于如何在 Linux 底下取得网络接口的状态,过去曾经于”取得网络装置(NETDEVI...

2015-03-25 23:40:49

阅读数:7877

评论数:0

自己写一个异常类my_own_exception来感知一下异常机制

在本文中, 我自己来写一个异常类my_own_exception, 主要为了感知一下C++异常机制, 看代码: #include using namespace std; class my_own_exception { private: char szMsg[1024]; public:...

2015-03-25 22:31:22

阅读数:6203

评论数:0

C++ string的c_str函数极易产生bug, 有陷阱, 请慎用---强烈建议用strncpy来拷贝c_str

string的c_str函数很怪异很危险, 先来看一个简单的例子: #include #include using namespace std; int main() { string s = "abc"; const char *p = s.c_str(); c...

2015-03-24 23:39:23

阅读数:6124

评论数:4

static_cast, dynamic_cast, const_cast, reinterpret_cast的简单介绍

在C++中, 我们有新的强制转换机制, 为什么要这么搞呢? 因为这些关键字非常显眼, 而且一旦出了问题, 可以方便查阅code.  我们今天暂时不说dynamic_cast, 仅仅感知一下其余的三个: int main() { // 普通转换, 只能用static_cast int i = 0...

2015-03-24 22:06:57

阅读数:5126

评论数:0

谈谈typedef char* PChar; const PChar p;的错误之处

我们之前讨论过const_iterator和const形式的iterator的区别, 直接引用过来, 代码如下: #include #include using namespace std; int main() { vector v(10); vector::iterator i...

2015-03-22 14:31:09

阅读数:5741

评论数:0

STL中的bitset

我们已经对vector有所了解了, vector是类模板, vector才是类。 在vector中, 我们需要指定类型, 但是, 在bitset中, 我们需要指定的是长度, bitset是类模板, bitset这样的东东才是类。       好吧, 多的不需要说, 一切尽在程序中: #includ...

2015-03-22 13:54:52

阅读数:5303

评论数:0

C++迭代器:const_iterator和const形式的iterator有什么区别?

从C语言走过来的猿们, 对指针已经很熟悉了, 也很清楚指向常量的指针和常指针的区别。 在本文中, 我们来学习一下C++中的迭代器, 顺便类比指针来学习一下指向常量的迭代器和常迭代器的区别。        其实, 迭代器很简单, 你就把它理解为一种类似指针的东西就行了, 毕竟指针的概率是广义的, ...

2015-03-21 12:34:12

阅读数:6535

评论数:0

为什么是string::size_type而不是int?---顺便聊聊无符号数和负数的比较

我们先看下面的程序(假设某环境下, 用16位表示整形):#include #include #include using namespace std; int main() { int a = pow(2, 15) - 1; // 假设某环境下, 用16位表示整形 cout <&...

2015-03-21 11:18:59

阅读数:5664

评论数:0

linux中读取网卡信息(ip, mask, mac)以及判断物理网线是否插好的C程序---我亲自试了一下,还不错!

说明: 我主要转载如下两篇文章, 但本文中加入了自己的一些描述       转载地址一:http://blog.chinaunix.net/uid-20692625-id-3172833.html       转载地址二:http://blog.chinaunix.net/uid-804896...

2015-03-20 23:44:16

阅读数:7384

评论数:2

C++头文件中有定义会造成冲突隐患么? --- 谈谈4个例外情况

我们都知道C++的一次定义原则, 比如, 你要是在头文件中定义int a = 0; 那是非常危险的, 一旦被多个.cpp文件包含, 会造成链接冲突。 在本文中, 我们来看看头文件中可以有定义的四个例外情况。        首先, 我们来看一个有错误的程序:        test.h的内容为:...

2015-03-20 00:10:30

阅读数:6136

评论数:0

C++ Primer 第4版中的Sales_item.h源码

转载地址:C++ Primer 第四版        Sales_item.h文件源码如下: #ifndef SALESITEM_H #define SALESITEM_H #include #include class Sales_item { public: Sale...

2015-03-19 23:19:08

阅读数:8463

评论数:0

for(int i = 0; i < 10; i++)和ctrl z在VC++6.0和VS2005中的不同表现

某次校招机试, 上机环境是VC++6.0, 结果一同学写出了下面的程序(我简化之后的): #include using namespace std; int main() { for(int i = 0; i < 10; i++) { // ... } for(int i ...

2015-03-19 23:10:07

阅读数:5577

评论数:0

基于select模型的tcp服务器------一个服务器如何与多个客户端进行通信?

很多时候, 服务器都需要同时与多个客户端进行通信, 服务嘛, 就是这样。 下面, 我们用select模型来简要模拟一下这种情形。代码是最好的解释, 所以, 还是上代码吧:       服务端程序: #include #include #pragma comment(lib, "...

2015-03-17 22:00:59

阅读数:11269

评论数:4

socket何时处于”读就绪状态“?---通过“应用程序大爷"和"内核孙子"对话再看重要的select函数的用法

前面, 我已经陆续介绍过select函数的一些零碎知识, 在本文中,我们来讨论这样一个问题:socket何时处于读就绪状态? 其实主要讨论select函数, 毕竟socket的读就绪状态会导致select函数立即返回。 需要注意的是: Windows环境下的select和Linux环境下的sel...

2015-03-17 21:57:02

阅读数:6723

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭