C++
编码博客控
这个作者很懒,什么都没留下…
展开
-
C/C++区别
本文主要参考了C++标准委员会出品的 Mix-c-and-cpp和 Learning C++ if you already know C]两个链接对应的一些问答内容,加上我个人的理解完成。本文先会说明C++和C的发展历史和它们之间关系,然后从编程范式上提纲挈领地总结一下表达下我个人的感受,之后从几个区别点来具体说明它们的不同。有不准确或疏漏的地方还请大家指正,谢谢。然后,关于C++语言标准参考...原创 2019-07-09 20:10:21 · 172 阅读 · 0 评论 -
C++ 程序员们的职业生涯规划
一、C++服务器程序员(高性能服务器后台)1、良好的TCP/IP协议,C++基础;2、大学本科学历,计算机相关专业,一年以上服务器开发工作经验(优秀应届生亦可接受);3、熟悉C++语言编程,能够独立根据需求进行模块设计和进行开发工作;4、理解面向进程的编程思想,注重代码质量,单元测试,功能测试,持续改进;5、具备较强的学习能力,良好的沟通能力及团队协作能力,具有很强的责任心,能承受较大的...原创 2019-07-26 16:37:45 · 2068 阅读 · 0 评论 -
C++异常处理入门(try和catch)
原文来源:https://www.jianshu.com/p/73f4378aea69开发程序是一项“烧脑”的工作,程序员不但要经过长期的知识学习和思维训练,还要做到一丝不苟,注意每一个细节和边界。即使这样,也不能防止程序出错。专家指出,长期作息不规律 + 用脑过度的危害很大,可能会诱发神经衰弱、失眠等疾病。我就是受害者之一,曾被失眠困扰了好几年,不但入睡困难,还容易早醒。程序员要注意劳逸结合...转载 2019-08-04 20:03:08 · 400 阅读 · 0 评论 -
C++异常类型以及多级catch
文章来源:https://www.jianshu.com/p/3858e8c3c822首先来回顾一下上节讲到的 try-catch 的用法:try{// 可能抛出异常的语句}catch(exceptionType variable){// 处理异常的语句}我们还遗留下一个问题,就是 catch 关键字后边的exceptionType variable,这节就来详细分析一下。...转载 2019-08-04 20:51:30 · 487 阅读 · 0 评论 -
C++模板template用法
引言模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。1. 模板1.1 什么是函数模板函数模板定义一族函数。//template1.cpp #include <iostream>template<typename T> vo...转载 2019-08-08 20:49:27 · 965 阅读 · 0 评论 -
华为C++开发工程师面试总结整理,面试问题你能答上几个?含答案
前言:虽然全世界每个月都可能会出现新的语言,但从TIOBE世界编程语言排行榜的数据来看,从2009年到现在,C/C++一直都在前3甲中。不论历史的车轮如何滚滚向前,学好C/C++永远不会落后。面试官问的面试题:一面:1.先自我介绍;2.把自己简历上的项目描述一下,然后选一个你认为最主要的项目来说,以及项目遇到什么问题,用什么方法解决的;3.Nagle算法和tcp的拥塞控制。4.项目...转载 2019-08-13 20:34:21 · 5610 阅读 · 0 评论 -
C语言三方库的调用和编写
来源:https://www.jianshu.com/p/d7c516f7433e1. 三方库相关指令gcc -ll 参数就是用来指定程序要链接的库,-l 参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是 m,他的库文件名是 libm.so,很容易看出,把库文件名的头lib 和尾 .so 去掉就是库名了。好了现在我们知道怎么得到库名, 当我们自已要用到一个...转载 2019-08-07 17:37:59 · 826 阅读 · 0 评论 -
红黑树(R-B tree)原理图文详解
文章来源:https://www.toutiao.com/i6724956642812625420/引言:学过数据数据结构都知道二叉树的概念,而又有多种比较常见的二叉树类型,比如完全二叉树、满二叉树、二叉搜索树、均衡二叉树、完美二叉树等;今天我们要说的红黑树就是就是一颗非严格均衡的二叉树,均衡二叉树又是在二叉搜索树的基础上增加了自动维持平衡的性质,插入、搜索、删除的效率都比较高。红黑树也是实现...转载 2019-08-14 17:57:12 · 318 阅读 · 0 评论 -
C++学习 | 面试官:我们只想要这样的C++工程师
聘要求是什么?这个很正常哈,主要是咱们平时很少去关注企业的招聘要求,所以不知道怎么学,更不知道要学哪些内容从哪学起。所以就就分析了大量公司的校园招聘,根据招聘要求给大家总结出了每个方向的学习路径。特此一篇关于C++方向的文章随后也会出来,欢迎大家关注呀~~一、什么是C++研发工程师呢?C++是最贴近底层编程语言。在性能方面上,有着无可替代的优势特别是对于很多游戏开发公司来说,C++尤其适...原创 2019-08-19 21:41:31 · 704 阅读 · 0 评论 -
smartptr讲义
文章来源:https://www.jianshu.com/p/f94846969d86为什么会有智能指针?在我们现实生活中有这样一个使用场景,每次我们new或者malloc了一块空间,完了必须需要我们手动delete或者free释放这块空间,否则会出现内存泄漏。但是,实际应用中程序未必都会按照顺序执行到释放空间那一步,有时候会在中间部分抛出异常使执行流发生跳转或者发生其他状况,总之代码未按照我...转载 2019-08-15 17:45:53 · 130 阅读 · 0 评论 -
GO语言能否取代C/C++呢?它们的区别在哪呢?
前言:随着网络技术的发展,有越来越多的编程语言出现,虽然老牌编程语言势头仍然强劲,不过也难以抵挡像GO语言这样的新锐。Go 是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。很多人认为GO语言将会成为现代的支持网络与多核计算的语言。有不少小伙伴对于GO语言和C/C++的区别有些疑问,甚至会认为GO语言会取代C/C++。下面我们纤细说明下。GO语言和...转载 2019-08-25 21:12:49 · 1082 阅读 · 0 评论 -
C++中引用和匿名对象的理解和剖析
大家对C++的引用应该都不陌生吧,抱着既要知其然,也要知其所以然的态度。下面将按照是什么?怎么用?为什么需要?本质剖析的流程来向大家一一描述。引用是什么?引用其实就是给变量起的一个别名,使用这个别名跟使用变量名没有区别。那什么又是变量名呢?变量名实质上是一段连续存储空间的别名,是一个标号(门牌号),编译器通过变量来申请并命名内存空间,程序员可以通过变量的名字可以使用存储空间。也可以这样理...转载 2019-08-21 16:11:05 · 391 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)...转载 2019-08-16 18:03:18 · 81 阅读 · 0 评论 -
条件编译指令(符号),C语言条件编译指令完全攻略
在 C 语言中,条件编译指令可以实现源代码的部分编译功能,可以根据表达式的值或者某个特定的宏来确定编译条件,以决定编译哪些代码,不编译哪些。使用“#ifndef/#define/#endif”防止头文件被重复引用在 C 语言中,一个文件中可以包含多个头文件,而头文件之间又是可以相互引用的,这将引起一个文件中可能间接多次包含某个头文件,从而导致了某些头文件被重复引用多次。例如,有 3 个文件 ...转载 2019-08-04 14:29:58 · 967 阅读 · 0 评论 -
详解C中volatile关键字
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;void...原创 2019-07-22 16:41:37 · 311 阅读 · 0 评论 -
关于结构体中最后的 char [0]
问题:结构体中最后定义一个类似 char p[0] 这样的成员,有何意义?回复1:这是个广泛使用的常见技巧,常用来构成缓冲区。比起指针,用空数组有这样的优势:1.不需要初始化,数组名直接就是所在的偏移2.不占任何空间,指针需要占用int长度空间,空数组不占任何空间。从herryhuang(Herry)的回复看,你只是看到了表面,并没有想到这种特性是很有利用价值的。“这个数组不占用任何内存...原创 2019-07-16 21:23:06 · 811 阅读 · 0 评论 -
C语言/C++声明
C语言是面向过程的,而C++是面向对象的C和C++的区别:C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的...原创 2019-07-16 21:56:34 · 193 阅读 · 0 评论 -
C++编译过程
1.C++ 编译过程在介绍编译器之前,先简单地说一下 C++ 的编译过程,以便理解编译器的工作。编译(compiling)并不意味着只创建仅仅一个可执行文件。创建一个可执行文件是一个多级过程,其中最重要的过程是预处理(preprocessing),编译(compliation)和链接(linking)。从源代码文件到一个可执行文件的整个过程,最好的说法是 build(中文翻译的话,有叫生成,有...原创 2019-07-19 16:06:58 · 113 阅读 · 0 评论 -
C/C++内存分配方式与存储区
C/C++内存分配有三种方式:[1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3] 从堆上分配,亦称动态内存分配。程序在运...原创 2019-07-19 16:54:28 · 233 阅读 · 0 评论 -
使用多字符常量的危险
在代码分析期间,PVS-Studio分析数据流并操作变量值。值取自常量或从条件表达式派生。我们称之为虚拟价值观。最近,我们对它们进行了改进,以便使用多字符常量,这已成为创建新诊断规则的原因。介绍多字符文字是实现定义的,因此不同的编译器可以以不同的方式对它们进行编码。例如,GCC和Clang根据文字中符号的顺序设置一个值,而MSVC根据符号的类型(常规或转义)移动它们。例如,'T \ x65...原创 2019-07-24 16:19:07 · 378 阅读 · 0 评论 -
为什么做了C++开发十几年的老程序员也不敢说自己精通呢?
一个十几年的C++程序员,几乎每天都涉及这门语言,还是觉得远远不到通层面,主要原因是实际工作过程中不可能每个语法细节都能涉及到,而且标准还在不停的更新增加,这门语言是值得研究一辈子,现在很多毕业没有多长的小伙伴,简历上写上精通的基本上面试通过的概率不大:真不知道天高地厚,前几天有个去公司实习的大学生,也是计算机料学与技术专业,让接触这门语言,结果开始搞就傻眼了,这个和学校学的差太远了,学校搞的基本...原创 2019-07-29 17:27:05 · 2058 阅读 · 0 评论 -
C/C++ typedef用法
引言typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。typedef的使用方法如...原创 2019-07-17 17:35:40 · 1345 阅读 · 1 评论 -
C/C++ 转义字符
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。转义字符 意义 ASCII码值(十进制)\a 响铃(BEL) 007\b 退格(BS) 008\f 换页(FF) 012\n 换行(LF) 010\r 回车(CR...原创 2019-07-17 17:56:51 · 686 阅读 · 0 评论 -
大灾变黑暗日子:静态分析和Roguelike游戏
您必须已经从标题中猜到,今天的文章将关注软件源代码中的错误。但不仅如此。如果您不仅对C ++感兴趣并且在阅读其他开发人员代码中的错误,还会挖掘不寻常的视频游戏并想知道“roguelikes”是什么以及如何玩它们,那么欢迎继续阅读!在寻找不寻常的游戏时,我偶然发现了大灾变黑暗日子,由于它的图形基于黑色背景上排列的各种颜色的ASCII字符,因此在其他游戏中脱颖而出。令人惊讶的是,这个和其他类似游...原创 2019-07-24 17:35:46 · 390 阅读 · 0 评论 -
如何用C和C ++拍摄自己的脚。Haiku OS Cookbook
关于PVS-Studio静态分析器和Haiku OS代码如何相遇的故事可以追溯到2015年。对于这两个项目的团队来说,这是一个令人兴奋的实验和有用的经验。为什么要做实验?那一刻,我们没有Linux的分析仪,我们不会再用一年半了。无论如何,我们团队的爱好者的努力得到了回报:我们结识了Haiku开发人员并提高了代码质量,扩大了我们的错误基础,开发人员制造了罕见的错误并改进了分析器。现在,您可以轻松快速...原创 2019-07-25 16:14:15 · 291 阅读 · 0 评论 -
C/C++内存泄漏与检测
“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时间都花在处理如何正确释放内存上。如果程序运行时间足够长,如后台进程运行在服务器上,只要服务器不宕机就一...原创 2019-07-21 22:14:29 · 1062 阅读 · 0 评论 -
为什么建议大家一定要会 C 语言
在如今 Python 和 Java 大火的市场前景下,我还是建议,如果你还在学校读书,或者你有大把的空闲时间,不着急去找工作,那就静下心来,好好学习一下 C 语言,会让你受益终生,也会让你的编程之路走的更远C 的认识1、C 语言作为编程最古老的语言之一,至今走过了快半个世纪,久经考验,仍然是宝刀未老,在排行榜上常年名列前茅,这铁铮铮的事实还不能说明问题吗?其设计的精髓,其内涵思想,都是值得当下...原创 2019-08-03 16:55:37 · 208 阅读 · 0 评论 -
屌丝程序员的逆袭之路,八面企鹅厂
本人现今十年开发经验;前前后后为进腾讯面试八次(腾讯旗下——腾讯互娱,企鹅直播的offer都被hr因学历而被拒,最后的腾讯教育面幸运地被录用了,拿到P6offer,真正的“八面”腾讯!)。本文主要分享面试总结,分享程序员我个人架构开发之路的学习经验。腾讯(鹅厂)组织架构腾讯八面面试流程(高级)腾讯社招的高级职位流程相对较长,可能长达2 个月。一面leader二面总监...转载 2019-08-28 22:16:45 · 208 阅读 · 1 评论