自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 C++学习总结——C++ 标准库(9)

2. 头文件 cstdlib(或stdlib.h)3. 头文件 cctype(或ctype.h)含有很多,具体使用时可以参考用户手册。cmath(或math.h)

2023-03-13 09:00:00 283

原创 C++学习总结——C++ 函数名重载(8)

注:如果两个函数的参数类型和个数都相同,知识他们的返回值类型不同,不能对其进行函数名重载,因为函数调用时不能区分调用的是哪个函数。对于含有两个或两个以上参数的重载函数绑定问题,原则是先绑定最佳匹配(也就是参数对应个数越多)。(和函数名重载没有太大关系:函数名可转换成函数函数指针)函数名重载:给多个不同的函数(参数的类型或个数有所不同)取相同的名字。6)每个标准转换都是平等的(也就是1到5的优先级相同)3)零可以转换成任何算术类型或指针类型。2)枚举类型可以转换成任何算术类型。1)任何算术类型可以互相转换。

2023-03-12 09:00:00 116

原创 C++学习总结——C++ 宏与内联函数(7)

其作用是建议(具体有没有不一定,有些函数加上也不会作为内联函数对待,如递归函数)编译程序把该函数的函数体展开到调用点,这样就避免了函数调用的开销,从而提高了函数调用的效率。因为函数调用需要开销(如:保护调用者的运行环境、参数传递、执行调用指令等),所以函数调用会带来程序执行效率的下降,特别是对一些小函数的频繁调用将是程序的效率有很大的降低。不足:1)重复计算,如max((x+1),(y+2)),因为其只是进行单纯的文字替换。2)#define () 3)#define

2023-03-11 09:00:00 122

原创 C++学习总结——C++ 变量的生存期(6)

register: 自动生存期,与auto不同在于,建议(不是一定)编译程序把该局部变量的空间分配在CPU寄存器中,其目的是为了提高对局部变量的访问效率。静态数据区和代码区的大小是固定的,而栈区和堆区的大小随程序的运行不断变化(不过操作系统会对其空间最大值有一定的限制)。3. 编译程序隐式自动将静态生存期的变量按位模式初始化为0,其他变量不对其进行初始化(使用空间中的已有值,因此是不固定的)栈区: auto存储类的局部变量、函数的形参、函数调用时的有关信息(如返回值)如:局部变量、函数的参数。

2023-03-10 08:56:03 205

原创 C++学习总结——C++ 标识符的作用域(5)

一个函数内的复合语句又是一个局部作用域,也就是在函数内有某个变量时,复合语句中可以有另外一个同名字的变量。//其中的x和y的作用域从“(”开始到")"结束。包括:局部作用域、全局作用域、文件作用域、函数作用域、函数原型作用域、名空间作用域、类作用域。指在函数定义或者复合语句中,从标识符的定义点开始到函数或者复合语句结束之间的程序段。语句标号(如goto语句中使用的语句标识)是唯一的具有函数作用域的标识符。指用于函数声明的函数原型,其中的形参的作用域从函数原型开始到函数原型结束。指单独的一个源文件。

2023-03-10 08:55:08 51

原创 C++学习总结——C++ main函数的返回值(4)

main函数通过返回值把整个程序的执行情况告诉调用者(通常是操作系统,但是操作系统通常会忽视main函数的返回值),一般情况下return 0表示正常结束,return -1表示非正常结束。main函数也可以不写return语句,这时当执行完最后一条语句后自动执行一条“return 0;其他函数的返回值原理同此。

2023-03-10 08:52:24 69

原创 C++学习总结——C++ 子程序间的数据传递(3)

2)地址/引用传递:传递实参的地址,可以提高参数传递的效率,可以返回多个执行结果,但是会降低数据访问效率(通过间接的方式访问传输的数据)、可通过形参改变实参。全局变量可以定义在函数外的任何地方,但是如果在使用一个全局变量时未见到它的定义,就要使用extern语句对其进行声明。1)值传递:传递实参的一个拷贝,可以阻止子程序通过形参改变实参,但最多只能返回一个值。2. 通过子程序的参数和返回值机制。

2023-03-09 11:05:58 146

原创 C++学习总结——C++ 无条件转移控制(2)

一般情况,很少使用goto语句从复合语句外部转到复合语句内部,多用于从复合语句内部转到复合语句外部,如退出多重循环(goto语句会破坏程序的结构,只有偶尔在这种情况下才使用),但是要是否会跳过变量定义语句,否则该就goto语句是非法的。只能用户循环体中,结束本次循环(也就是不在执行循环体中continue后面的语句),进入下一次循环(不是跳出循环体)。注意:不能用goto语句从函数外部转入函数的内部,也不能从函数内部转入到函数的外部;是个标识符,定义格式为: ;

2023-03-09 11:04:14 54

原创 C++学习总结——C++基本数据类型和表达式(1)

符号常量:又称命名常量,指有名字的常量,如 const double PI=3.1415;1. C++是一种静态类型语言(运行前指定每个数据的类型),也是一种强类型语言(对数据的操作进行严格的类型检查)。计算过程中要注意数据的底层表示(是否溢出等)、表达式的副作用(短路求值等)。先a > int, 然后(a*b) > double。声明: extern ;2)按算术、移位、关系、逻辑位、逻辑依次降低。typedef ;4. 常量包括两种:字面常量和符号常量。

2023-03-09 11:02:37 46

原创 嵌入式软件工程师面试 2

是现在人才市场上比较紧缺的职位,该职位由于学习困难大,学习资源少,对开发者拥有的知识面较广,所以很多招聘公司找不到这类人才,所以需要我们不停的学习自我,充实自我,走向成熟才行。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。解:tcp/udp属于运输层,tcp提供稳定的运输服务,包头大,冗余大,udp提供不稳定的运输服务,包头小,开销小。解:中断请求,中断屏蔽,中断响应,保护现场,中断源调查,中断处理,清除标志,保护现场,中断返回。解:函数需要分配内存,宏不需要;

2023-03-09 10:08:20 79

原创 嵌入式软件开发面试题 1

CSDN的小伙伴们,我是小小y。今天在这给小伙伴们分享一些嵌入式软件开发工程师的校招面试题。企业校招对基础考察较多。其次,在校参加的相关比赛,项目经历(参加的比赛及项目经历是应届生最好的证明)。下面说说我在面试嵌入式软件开发岗位常遇见的问题。在面试前可以提前熟悉这些问题的答案。第一类问题:专业考察题在下面问题中,我附上自己的理解,可能不全面,用到的话再自行补充一些。(实力欠缺嘻嘻)问题1:问你写在简历上的项目经历,一般问的很细很细,在此基础上考察你项目里用到的技术知识。所以一定要熟悉自己包装简历上的内容。

2023-03-04 09:27:21 386

原创 Linux面试题2

Linux系统调优可以通过这几个方面来做,比如文件系统优化(分区调优,格式化时根据存储文件特性,指定合适的块大小,noatime,日志隔离,软raid,有效使用/dev/shm,关闭不必要的服务)、内核参数优化(net.ipv4.tcp_syncookies = 1, net.ipv4.tcp_max_tw_buckets = 65535, net.ipv4.tcp_tw_recycle = 1, net.ipv4.tcp_tw_reuse = 1)相应的,OS的主要功能也正是对这四类资源进行有效的管理。

2023-03-02 12:03:23 4405

原创 static 关键字的作用

3.静态成员被该类所有对象共享static 关键字可以修饰类中的成员变量和成员方法,被称为静态成员变量和静态成员方法,静态成员拥有一块单独的存储区,不管创建多少个该类的对象,所有对象都共享这一块内存。静态成员本质上属于类,可以通过类名直接访问。1.静态变量默认初始化值为 0,如果没有显示初始化静态变量或者初始化为0的静态变量会存储在BSS段,而初显示初始化的静态变量存储在DATA段。2. 静态成员函数中不能访问普通的成员变量,只能访问静态成员变量,并且在静态成员函数中没有 this 指针。

2023-02-28 08:30:00 403

原创 指针 和 引用 的区别

指针是一种数据类型,用于保存地址类型的数据,而引用可以看成是变量的别名。而引用的定义格式为:数据类型 &;2.引1用不可以为空,当被创建的时候必须初始化,而指针变量可以是空值,在任何时候初始化;7.sizeof 引用得到的是所指向的变量(对象)的大小,而 sizeof指针得到的是指针变量本身的大小;8.指针作为函数参数传递时传递的是指针变量的值,而引用作为函数参数传递时传递的是实参本身,而不是拷贝副本;6.指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了;

2023-02-27 08:30:00 816

原创 什么是野指针,怎么产生的,如何避免

指针释放后末置空:有时候指针在释放后没有复制为 nullptr,虽然指针变量指向的内存被释放掉了,但是指针变量中的值还在,这时指针变量就是指向一个未知的内存,如果对它解除引用,结果是不可知的。指针变量末初始化或者随便赋值:指针变量没有初始化,其值是随机的,也就是指针变量指向的是不确定的内存,如果对它解除引用,结果是不可知的。指针操作超出了变量的作用域:函数中返回了局部变量的地址或者引用,因为局部变量出了作用域就释放了,这时候返回的地址指向的内存也是未知的。未知内存、未初始化、置为nullptr;

2023-02-26 08:30:00 1011

原创 内联函数和函数的区别,内联函数的作用

普通函数在被调用的时候,需要寻址(函数入口地址);一内联函数有一定的限制,内联函数体要求代码简单,不能包含复杂的结构控制语句,如果内联函数函数体过于复杂,编译器将自动把内联函数当成普通函数来执行;2.内联函数的作用:因为函数调用时候需要创建时间、参数传入传递等操作,造成了时间和空问的额外开销。通过编译器预处理,在调用内联函数的地方将内联函数内的语句复制到调用函数的地方,也就是直接展开代码执行,从而提高了效率,减少了一些不必要的开销。1. 内联函数和函数的区别:内联函数比普通函数多了关键字。

2023-02-24 14:44:56 415

原创 const 的用法

用于形参时说明形参在函数内部不能被改变,这是非常有用的,有时候函数参数传递指针或者引用,在函数内部不希望对指针和引用指向的数据进行修改,可以加上const;如果 const 修饰的是静态的成员变量,则需要在类外对该变量进行初始化.。是常量指针,表示指变量p 所指向的内容不能修改,指针变量p的内容可以修改;是指针常量,表示指针变量p的内容不能修改,指针变量p所指向的内容可以修改;类的成员变量可以分为静态的和非静态的,如果const 修饰的是静态的成员。1.用在变量身上,表示该变量只读,不能对它的值进行修改。

2023-02-24 14:19:38 61

原创 const 和 define 之间的区别

const 在C 语言中表示只读,编译器禁止对它修饰的变量进行修改,在C++ 中增加了常量的语义。3.用define 定义的常量是不可以用指针变量去指向的,用const 定义的常量是可以用指针去指向该常量的地址的;2. define 只是简单的字符串替换,没有类型检查,而const 有对应的数据类型,编译器要进行。4. define 不分配内存,给出的是立即数,有多少次使用就进行多少次替换,在内存中会有多个。拷贝,消耗内存大,const 在静态存储区中分配空间,在程序运行过程中内存中只有一个拷贝;

2023-02-23 09:51:01 963

原创 C语言和C++语言的区别

3.C 程序中如果函数没有任何参数需要将参数定义为 void 以此来限定函数不可传递任任何参数,如果不进行限定让参数表默认为空其意义是可以传递任何参数,在C++中,不带参数的函数表示函数不能传递任何参数;1.C 语言是面向过程的语言,而C++ 支持面向对象,所以C 语言自然没有面向对象的封装、继承、多态等特性,也不支持面向对象的一些语法;9.C 语言中只有局部和全局两个作用域,而C++中有局部、全局、类、名称空间作用域。5.C 语言函数参数不支持默认值,而 C十语言支持参数默认值;6.C++ 语言支持。

2023-02-23 09:44:49 92

原创 TCP和UDP的区别

UDP:是无连接的;TCP:面向字节流;UDP:面向报文的;TCP:与TCP连接只能点到点;UDP:连接方式更加多样化;TCP:提供的服务更可靠;另外:UDP的首部开销8个字节比TCP的20字节要小。

2023-02-23 09:39:21 50

原创 保姆式解释const char *ptr,char const *ptr,char *const ptr的差别

从右往左读:ptr是指向一个char型的const指针。意味着你const了指针,那么指针指向的地址是不能变的,但是你可以改变其中的内容。你可以认为这两种声明的功能是一样的。你都不可以修改它指向的内容,但是你可以改变其指向的内容,换句话说你可以重新赋值ptr。第一类:const char *ptr 和char const *ptr。ptr 是一个 指向 const char 的指针。ptr 是一个 指向 char const 的指针。ptr 是一个 指向char 的常量指针。

2023-02-23 09:32:59 486

原创 Linux面试题 1

两台Linux服务器都只开放了SSH服务,端口号均为999,你已使用user1登陆服务器1.1.1.1,需要将/home/user1/data.tar.gz文件传送至服务器2.2.2.2用户名为:userB 目的目录为/home/userB,并将文件更名为:dataB.tar.gz 请用一条命令完成上述任务(密码不考虑)假如日志每行都有时间标记,比如我们要获取的日期为2013年2月10日,日志中的日期表示是这样的“10/feb/2013:00:00:01”。分为主动模式与被动模式。

2023-02-20 16:32:25 663

原创 面试常问—进程与线程的区别

进程,线程,火车,车厢,区别,PID,优势,信号量,比喻

2023-02-20 16:29:48 55

原创 Linux常用命令(总结)

Linux常用命令(总结)

2023-02-20 15:16:28 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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