小小提示笔记,写完记得及时保存

2023.03.03
1.继承记好了, private继承的时候,只有子类里面能访问(当子类处于其他类里的时候不能访问父类函数),public继承的时候 子类被放到其他类里面也能访问父类函数,
1.一个0x00000001  
一个十六进制 可以用 二进制的0000  四位表示因为 2*2*2*2 可以表示16个数
但一个字节是BYTE   八位二进制 0000 0000  所以一个16进制对应0.5个BYTE
3.ACSLL  表这俩一定要记住 经常用
0011 0000  就是0x30  十进制48 就是我们的数字0 
0100 0001  就是0x41  十进制65 就是我们的大写字母A
4.可恶现在才理清,char 和int 
char 我们都知道是占用一个字节 那就是八位, 八位大小就是 256 但是ACSLL码 126位 +正负就是
128表示一百二十八个 数字,乘2就是256,   然后 char就是表示ACSll码里的 图形也就是字符,就是数字啊大小写字母啊 标点符号啊什么的, 
所以,当你把int值 付给char的时候 这时候 打印出来的就是 acsll表里面 该十进制整数所对应的 字符 ,比如 你把65int值 付给char  那char打印出来的就是A
这就是 int 和 char的关系, 当然 赋予超过了  256  char承受不了 就自动舍去256  输入 258就默认成2   输入257就默认成1
然后int是占用四个字节 所以int的范围 你这不就可以算出来了    可以啊 66666
那就是(这里的*是乘号的意思) char * char * char * 128 也就是 256*256*256*128 为什么最后不乘以256呢? 因为同理int也需要一个位置来表示正负号呀hhh

2023.03.06
1.当我们在 做数据解析的时候, 通常会用到结构体,因为方便,可用通过memset memcpy 来将结构体强制转化成BYTE* 主要memcpy 也是根据指针 和你 后面写的长度 进行一个字节一个字节拷贝的,所以 结构体其实就是把字节都划分了 比如里面int就是四个字节,这样我们memcpy拷贝的时候就统一了嘛,然后用完 我们在把它转回去结构体,方便传参什么的,
总之 结构体和指针 都很简单,一个是根据字节所演变的不同结构,指针则是 一个地址一个内容,星号便是解引用里面放的是指针的内容,&是区地址符,
还有我们写链表的时候 要脑袋画副图,这样更好理解 更快
2.好家伙 其实我们都可以把数据类型 在脑子里 转化成二进制 对比,这样更容易明白啊
比如一个16进制就是4个二进制嘛 一个int就是4个字节 就是4个八位, 就是32个二进制嘛

2023.03.09
1.多使用帮助qt文档  然后索引 look for 然后回车 就可以定位到需要帮助的函数了
2.原来 tcp udpqt用起来也没那么难啊 就 绑定端口 然后通过tcp 或udp接受 函数调用并放到QByteaddy 里面进行读取就行了, 就是绑定ip 端口 就能找到计算机,发送信息 两步就行 了?
3.Qt坑 :
        1.Qt设计界面的时候 比如你来了个widget 然后在里面设置各种小控件label,如果你设置了widget的样式表,你的子类也会跟着刷新成父类的,所以后面要注意一下,其实就是子类会被父类影响,所以以后设计界面要注意一下
        2.在用vs的时候注意 目录注意项目的输出目录,一般默认都是跟项目同级目录,我们属性常规里可以设置输出目录,还有我的 动态库出错 崩掉,就是因为没找到对应的目录,或者没把动态库放到你的输出目录中,可恶,vs中 你调用QApplication::applicationDirPath() 这里跟你的属性里面设置的输出目录有关,你里面设置了输出目录 ./debug 这个函数就会返回到这里,所以你手动设置了你还得需要 去程序同级就是./ 就是当前这里 添加一个debug文件夹 来供项目找到并输出
        3.vs 报一堆dll错误的时候 很可能是 你项目 属性 连接器 输入 这里没对,上面QtCore.ll Gui
等等 没有设置
2023.03.10
1.在使用qt类的时候多看 头文件 就会快速了解里面有什么功能
比如我今天用的eventfilter 然后同事告诉我 tableWidget 自带的就有这个 封装好的功能啊
不用自己重写,所以以后要多看头文件 ,如果对一个类 不清楚的话
难怪找了半天,难怪我的tablewidget里面 接受 不到鼠标事件,反而我的 主窗口可以,tablewidget还需要调用函数设置接受鼠标事件啊 噗
上面的添加了也不行,得添加tablewidget->viewport()->installEventFilter(this);
然后事件函数里 obj == this->ui->tablewidget->viewport(); 也要这么调用
虽然不知道为什么 要用viewport() tablewidget才能接收到鼠标事件
2.上班要学会自己给自己找活儿, 或者想想自己还有什么 工作内容没有完成的,别傻不拉唧的被叫去就说手上活都干完了,不然怎么学习
2023.03.11
1.当你刷题 或者解决问题的时候, 如果 不会了看题解的时候 ,一定要时刻想着问题是什么,别搁哪看着代码瞎猜,只会越找越远,我们要记住 时刻回忆一下 或者带着问题去思索
1.服务逻辑分析
    主模块(obj) 服务器模块(thread)  数据管理模块(SQL) 设备管理模块(thread) 分发模块(thread) 密模块(obj);
    逻辑串联方式通过数据库里状态标记进行交互分发,框架为单线程(即任务队列) 分发一个任务等待任务完成后再分发,一条一条的执行 
    主模块-->设备管理模块-->分发模块-->密模块-->服务器模块
2.知识点:QThread 里面的不仅仅是run函数可以 来个 while循环一直跑,如果外界想要 通知进来,可以来个线程里的全局变量 再开一个接口,这样 主函数调用这个线程里的接口 并给这个类里的全局变量置状态 或者传参什么的 就能来控制该线程了,所以接口函数和 run里的while 不影响,之所以外面会影响 是因为 外面调用这里的函数 和run里 while里 都是同时靠着一个全局变量开判断控制的,所以run while里不会被影响 
2023.03.14
1.条件语句条件超过二个 优先考虑switch语句
2.关于多线程, 
假设现在有一个主对象, 有两个子线程1,2,  这时候线程2要去释放这个对象, 而线程1 比较长,线程1还没来得及返回呢,线程2就把主对象释放了,这时候线程1傻眼了,找不到对象了,程序就崩了
3.今天学了信号量 和 互斥锁, 然后也知道了 线程join和线程分离,也知道了 线程create的时候是什么时候退出的要么主动退出 要么函数 最后返回return nullptr的时候退出
4.linux 命令 sync 是将 内存中的信息写入到硬盘上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值