现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2018-10-31 13:52 工业·编程 ⁄ 共 997字 暂无评论
对于一个函数,如果未加引用,则是按值传递,实际上只是复制了一个传入参数相同类型相同值的变量进行操作,当函数结束时,传入变量并未改变,如: 代码1: void Func(int num) {     num += 1; } int main() {     int a = 1;     Func(a);     cout<<a<<endl;     return 0; } 这段代码执行时,将a的值复制给num,num加上1之后为2,...
阅读全文
2018-10-30 13:48 工业·编程 ⁄ 共 483字 暂无评论
在重新回顾C语言数据结构时,在实现顺序表和链表时关于指针使用的区别让我觉得很有趣。 像在顺序表中实现 struct SeqList {     DataType arry[MAX_SIZE];     int Size; }; 而我们在使用顺序表时,往往在main函数中直接定义: SeqList seqlist; 在后面对顺序表的使用中,直接传参,比如 InitList(&seqlist); 而在链表中 typedef struct SQList {     DataType data;  &...
阅读全文
2018-10-28 13:42 工业·编程 ⁄ 共 516字 暂无评论
gdb有一组命令可辅助多线程程序的调试。 info threads 显示当前可调试的所有线程。gdb会为每个线程分配一个ID,我们可以使用这个ID来操作对应的线程。ID前面有“*”的线程是当前被调试的线程。 thread ID 调试目标ID指定的线程。 set scheduler-locking[off|on|step] 调试多线程程序时,默认除了被调试的线程在执行外,其他线程也在继续执行,但有的时候我们希望只让被调试的线程运行。这可以通过这个命令来实现。 该命令设置...
阅读全文
2018-10-27 13:38 工业·编程 ⁄ 共 469字 暂无评论
  如果一个进程通过fork系统调用创建了子进程,gdb会继续调试原来的进程,子进程则正常运行。那么该如何调试子进程呢? 单独调试子进程   子进程从本质上说也是一个进程,因此我们可以用通用的gdb调试方法来调试他。 举例来说如果要调试一个服务器中的某一个子进程,我们可以先运行服务器,然后找到目标子进程的PID,再将其附加(attach)到gdb调试器上,具体操作为: $ps -ef | grep 进程名 //通过上述命令的到...
阅读全文
2018-10-20 12:19 工业·编程 ⁄ 共 3595字 暂无评论
map是C++ STL中的关联容器,存储的是键值对(key-value),可以通过key快速索引到value。map容器中的数据是自动排序的,其排序方式是严格的弱排序(stick weak ordering),即在判断Key1和Key2的大小时,使用“<”而不是“<=”。map 使用二叉搜索树实现,STL map的底层实现是红黑树。 map有几个值得注意的地方:map的赋值运算是深拷贝,即调用map_a = map_b后,map_a中的元素拥有独立的内存空间。map的[]运算比较有意思,当元...
阅读全文
2018-10-13 12:17 工业·编程 ⁄ 共 1150字 暂无评论
软件开发作为一项极易踩坑而且犯错成本很高的工作,一定要有强烈的检查意识。在工作中发现,检查意识能带来很多明显的好处: 检查代码可以加快开发完成时间。大型的C++工程中代码编译速度很慢,短则几十秒,长则十几分钟。因此写完代码就直接编译是非常错误的选择,应该首先由开发者检查代码,解决显而易见的错误,然后再进行编译。理想的情况是我们开发的代码可以一次编译通过,做到这点其实不难,只需保证有以下的检查意识: ...
阅读全文
2018-10-07 11:05 工业·编程 ⁄ 共 3164字 暂无评论
单例是什么?单例是一种特殊的类,用于确保只有一个对象,同时提供一种全局访问这个对象的方法。最近在工作中体验了一把5分钟将一个类改造成单例,感觉还是蛮不错的,所以我决定写一篇文章,跟大家交流技术和经验。 单例的原理是利用C++中的静态成员变量和静态成员函数,同时禁用构造函数的方法,达到只有一个对象实例的目的。 具体来说,设计一个单例的要点如下: (1)类的静态成员变量是该类的指针。 (2)类的静态成员函数...
阅读全文
2018-09-30 10:59 工业·编程 ⁄ 共 833字 暂无评论
在大型后端系统中,白名单机制是必不可少的,主要用在以下几个方面: 黑名单的对立面。这是白名单最明显的应用场景,例如微信朋友圈禁止抖音、快手等平台的短视频分享,但是微信、QQ等APP拍摄的小视频是可以分享的,所以这里有一个“短视频分享白名单”在起作用。 测试帐号。我们在测试新功能的时候,刚开始不想对所有用户都生效,可以通过白名单机制限制生效范围,利用白名单的思想可以对账号进行分类,只有在白名单中的测试帐号...
阅读全文
2018-09-28 10:48 工业·编程 ⁄ 共 986字 暂无评论
程序core掉的方法可以通过glog的FATAL级别日志,或者调用abort函数等方式终止程序。core掉的好处是很明显的,它能将严重的错误及时暴露出来,以便及早处理。后端系统通常都设计有容错冗余机制,一个进程core掉,其服务功能会自动由同组的其他进程来承担(failover),因此没有必要让“生病的程序带病工作”。 在计算机术语中,故障转移(英语:failover),即当活动的服务或应用意外终止时,快速启用冗余或备用的服务器、系统、硬...
阅读全文
2018-09-25 10:10 工业·编程 ⁄ 共 794字 暂无评论
一般情况下,我们按照由外入内,从大到小的顺序介绍系统架构。 "外"是指系统的外貌,即系统的行业背景、核心功能、主要用户和系统特点。注意介绍时讲话要简洁明了,每个点都力求只用一句话,绝不拖泥带水,给面试官留下一个"惊人的好印象",让他觉得眼前这个面试者属于有备而来,不是来讲废话浪费双方时间的。 "内"是指系统架构的组成,主要包含哪些模块,各模块使用的技术栈。有个技巧是按照数...
阅读全文