请选择 进入手机版 | 继续访问电脑版

C++编程

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: ID紫麒麟

紫麒麟笔记_对一些基础东西的理解

[复制链接]

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-6-27 17:05:52 | 显示全部楼层
socket一直是用封装好的东西,最近看别人的代码的时候,因为是耦合性比较高的东西,里面的socket没有单拎出来,看了看,有些socket用法确实还是需要认真看看基础的东西呀。这个里面还是有些东西要看看的。
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-6-29 18:46:42 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2017-7-12 18:25 编辑

唉。。。。对于基础的理解什么的有点儿乱,因为以前的笔记什么的好多是从网上找的博客或者文章,甚至是有一些是在心烦意乱的时候用键盘抄的书籍。所以有好多都不方便贴上来,我写的都是一些我的理解,或者尽量不照搬别人的东西,大多数都是寥寥数笔的状态。
更是觉得看到某一楼的时候,自行百度一下,大概弄懂就行了。
今天的是:

read()/write()
recv()/send()
readv()/writev()
recvmsg()/sendmsg()
recvfrom()/sendto()

最好把函数用的时候是同步的还是异步的搞懂为妙,因为有时候就是这里会出问题。


说白了,网络是什么呢?
一种是把一个程序拆成两份,一个叫客户端,一个叫服务端来共同完成以前在单机上跑的程序功能。
拆开之后,就有了很多变化,原来只是函数调用,现在变成了网络通信协议解析。(当然我只是分析了编码方面的变化)
其实很多编程都是增加中间件来搞通用之类的,很多设计模式也是增加了中间件,但是增加中间件之后,有时候就增加了环节,所以造成了错误率提高。
网络通讯协议搞了不少的东西,就是为了弥补拆开之后的各种问题。

回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-7-10 12:21:08 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2017-7-10 13:44 编辑

对于类的友元这个隔壁老王,我感觉有时候让程序的结构变得耦合性高了一些,可是有时候却又不得不利用。
我好像很少写模板的东西,因为我现在的工作中很少用到,甚至说根本用不到,因为需要跟一个工作十五六年的人一起敲代码,所以一般不用。
但是我觉得新手还是要经常尝试用用新技术的,跟上这个时代,紧紧咬住时代,挺好。
而且stl的东西实际上挺好的,我在2014年的时候就写过一些stl的东西,可惜的是工作中用的少。
感觉这个也是跟C/C++逐渐势微的情况还是有关系的。
我的感觉cpu到达极限的时候,会出现多cpu和多核,gpu并行运算一类的追求速度,的情况。
网络速度似乎也卡在路由之类的东西极限上了,如果没有新的革新,依然会处在IO卡住瓶颈的状态。
感觉CPU与GPU的顶尖状态合并或许能够发挥更好的性能,但是终究也会卡在物理极限上。
不过我觉得到那时候,真正的VR和AR就能实现了。
咿呀,胡乱诌了好多呀,吃饭去。。。
好了,既然今天中午的时候“胡诌白咧”了不少,而且也挺假大空的,那就干脆写点儿空泛的东西吧,这一楼注定不接地气儿了。
写写操作系统中的进程间的通信吧:

管道油槽
FIFO
消息队列
互斥量
信号量
socket套接字
共享内存
条件变量
文件读写锁
脚本(有时候作为两个程序的粘合剂用的时候,我认为某种意义上也算是进程间通信了)
剪切板、人的操作


有些技术有限制,有些技术比较老,不过究竟选择哪一种来用就看怎么评判了。
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-7-11 15:14:20 | 显示全部楼层
多重继承、嵌套类。
这两个东西也没什么特别多说的,只是有些代码里面见到了,知道是什么就行了。一般很少用到。
我个人认为:
友元跟多重继承,这两个从某种意义上,都是为了解决有个C里面有些像A又有些像B,又可能不完全是的东西吧。
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-7-11 15:43:05 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2017-7-11 17:59 编辑

今天写个设计模式吧:代理模式
啥叫代理模式呢?感觉举个例子最贴切的就是  代理律师
那么代理律师有啥用呢?
别人找你的时候,不知道你的联系方式,只能通过代理律师找你。
在你跟别人的交流中,代理律师顺便利用自己的法律知识,帮你把把关。
另外律师在收到有关于你的事情的时候,可以为你筛选出,你真正需要用到的东西。节省了你的时间。有些你可以不出面的事情,代理律师就出面解决了。

至于真正理解代理模式,原本的东西,可以自行百度了

一个律师是可以同时代理多个人的,但是代理模式跟这个有区别,我觉得23种设计模式,有时候并不是那么泾渭分明。
有时候真正用的时候,贴合需求才是最好的设计。
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-7-11 17:45:53 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2017-7-11 17:50 编辑

最近看多了网络层的东西,也明白了以前面试的时候,那种追求高并发的面试官为什么对我的回答感觉不可思议了。
以前做过一些跟板卡里面用FPGA通讯的东西,数据量很大,处理速度就是在网络层,所以线程不停的接收网络层数据,只要有数据就写入缓冲区,在经常写高并发的人眼里确实很怪异。
感觉网络层的函数得注意是同步的还是异步的,对处理问题的时候找问题还是有帮助的。
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-7-13 17:39:27 | 显示全部楼层
今天先写一个偏冷门的东西吧
#pragma region
#pragma endregion
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-7-18 16:44:21 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2017-7-18 16:51 编辑

再写一个冷门的东西吧:有时候对编译环境也需要做一些条件编译,下面是检测编译环境的宏
VC 2015
        _MSC_VER == 1900
VC 2013
        _MSC_VER == 1800
VC 2012
        _MSC_VER == 1700
VC 2010
        _MSC_VER == 1600
VC 2008
        _MSC_VER == 1500
VC 2005
        _MSC_VER == 1400
VC 7.1
        _MSC_VER == 1310
VC 7.0
        _MSC_VER == 1300
VC 6.0
        _MSC_VER == 1200
Windows Versions:
_WIN32_WINNT_NT4                 0x0400
_WIN32_WINNT_WIN2K             0x0500
_WIN32_WINNT_WINXP             0x0501
_WIN32_WINNT_WS03              0x0502
_WIN32_WINNT_WIN6               0x0600
_WIN32_WINNT_VISTA               0x0600
_WIN32_WINNT_WS08               0x0600
_WIN32_WINNT_LONGHORN       0x0600
_WIN32_WINNT_WIN7                0x0601
_WIN32_WINNT_WIN8                0x0602
_WIN32_WINNT_WINBLUE          0x0603
_WIN32_WINNT_WIN10              0x0A00

回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-7-21 17:26:51 | 显示全部楼层
VS里面的
__super
这个东西是指父类的。
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-7-24 18:35:07 | 显示全部楼层
class A {
public:
    A();
private:
    int a;
    const int b;
};
比较一下下面两种构造函数的写法:
A::A() : a(0), b(98) { }
A::A() {
    a = 0;
    b = 98;
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|C++编程  

GMT+8, 2019-9-22 22:12 , Processed in 0.109375 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表