轻松学C语言
码龄5年
  • 469,569
    被访问
  • 20
    原创
  • 1,000,850
    排名
  • 278
    粉丝
  • 21
    铁粉
关注
提问 私信
  • 加入CSDN时间: 2017-08-07
博客简介:

轻松学C语言

博客描述:
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
查看详细资料
个人成就
  • 获得235次点赞
  • 内容获得43次评论
  • 获得1,131次收藏
创作历程
  • 137篇
    2022年
  • 301篇
    2021年
  • 32篇
    2020年
  • 47篇
    2019年
  • 12篇
    2018年
  • 21篇
    2017年
成就勋章
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

基于 C++11 的线程池 threadpool , 简洁且可以带任意多的参数

点击蓝字关注我们咳咳。C++11 加入了线程库,从此告别了标准库不支持并发的历史。然而 c++ 对于多线程的支持还是比较低级,稍微高级一点的用法都需要自己去实现,譬如线程池、信号量等。线程池(thread pool)这个东西,在面试上多次被问到,一般的回答都是:“管理一个任务队列,一个线程队列,然后每次取一个任务分配给一个线程去做,循环往复。” 貌似没有问题吧。但是写起程...
转载
发布博客 前天 18:00 ·
17 阅读 ·
0 点赞 ·
0 评论

C++ 面试必问:深入理解虚函数表

点击蓝字关注我们深入理解C++ 虚函数表C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。Derive d;Base1 *b1 = &d;Base2 *b2 = &d;Base3 *b3 = &d;b1->f(); //Derive::f()...
转载
发布博客 前天 18:00 ·
8 阅读 ·
0 点赞 ·
0 评论

C++ 面试考点(一)

点击蓝字关注我们C++ 基础1、引用和指针的区别?初始化:引用在定义的时候必须进行初始化,并且不能够改变指针在定义的时候不一定要初始化,并且指向的空间可变访问逻辑不同:通过指针访问对象, 用户需要使用间接访问通过引用访问对象, 用户只需使用直接访问, 编译器负责将其处理为间接访问运算结果不同:传指针的实质是传值,传递的值是指针内储存的变量地址;传引用的实质是传地址,传递的...
转载
发布博客 2022.07.02 ·
5 阅读 ·
0 点赞 ·
0 评论

C++ 智能指针详解

点击蓝字关注我们参考资料:《C++ Primer中文版 第五版》我们知道除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们的代码必须显式的销毁它们。在C++中,动态内存的管理是用一对运算符完成的:new和delete,new:在动态内存中为对象分配一块空间...
转载
发布博客 2022.07.02 ·
18 阅读 ·
0 点赞 ·
0 评论

学点 STL C++ 无序容器和元组

点击蓝字关注我们无序容器我们已经熟知了传统 C++ 中的有序容器std::map/std::set,这些元素内部通过红黑树进行实现, 插入和搜索的平均复杂度均为O(log(size))。在插入元素时候,会根据<操作符比较元素大小并判断元素是否相同, 并选择合适的位置插入到容器中。当对这个容器中的元素进行遍历时,输出结果会按照<操作符的顺序来逐个遍历...
转载
发布博客 2022.07.01 ·
4 阅读 ·
0 点赞 ·
0 评论

C++ 虚函数表剖析

点击蓝字关注我们一、概述为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。二、类的虚表每个包含了虚函数的类都包含一个虚表。我们知道,当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说,一个类继承了包含虚函...
转载
发布博客 2022.07.01 ·
5 阅读 ·
0 点赞 ·
0 评论

C语言和C++的区别和联系

点击蓝字关注我们C语言和C++到底是什么关系?首先C++和C语言本来就是两种不同的编程语言,但C++确实是对C语言的扩充和延伸,并且对C语言提供后向兼容的能力。对于有些人说的C++完全就包含了C语言的说法也并没有错。C++一开始被本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)发明时,起初被称为“C with Classes”,即「带类的C」。很明显它是在C语...
转载
发布博客 2022.06.30 ·
26 阅读 ·
0 点赞 ·
0 评论

嵌入式C语言程序调试和宏使用的技巧

点击蓝字关注我们01.调试相关的宏在Linux使用gcc编译程序的时候,对于调试的语句还具有一些特殊的语法。gcc编译的过程中,会生成一些宏,可以使用这些宏分别打印当前源文件的信息,主要内容是当前的文件、当前运行的函数和当前的程序行。具体宏如下:__FILE__当前程序源文件(char*)__FUNCTION__当前运行的函数(char*)__LINE__...
转载
发布博客 2022.06.30 ·
7 阅读 ·
0 点赞 ·
0 评论

四大C语言知识总结

点击蓝字关注我们1、#define宏定义以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定义一个宏,程序在预处理阶段将用define定义的来内容进行了替换。因此在程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。define定义的常量,预处理时只是直接进行了替换,,它用来将一个标识符定义为一个字符串,该标...
转载
发布博客 2022.06.28 ·
9 阅读 ·
0 点赞 ·
0 评论

C语言_结构体总结,附实例源码

点击蓝字关注我们当前文章介绍动态堆空间内存分配与释放,C语言结构体定义、初始化、赋值、结构体数组、结构体指针的相关知识点,最后通过一个学生管理系统综合练习结构体数组的使用。1. 动态内存管理C语言代码----->编译----->链接------>可执行的二进制文件(windows下xxx.exe) 二进制文件中的数据是如何摆放的? 文本数据段、静态数据段...
转载
发布博客 2022.06.28 ·
11 阅读 ·
0 点赞 ·
0 评论

C语言的核心和灵魂

点击蓝字关注我们提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了。今天我们想跟大家讲的是指针中的两个特有名词:“悬空指针”和“野指针”。悬空指针C语言中的指针可以指向一块内存,如果这块内存稍后被操作系统回收(被释放),但是指针仍然指向这块内存,那么,此时该指针就是“悬空指针”。下面这段C语言代码是一个例子,请看:void *...
转载
发布博客 2022.06.27 ·
9 阅读 ·
0 点赞 ·
0 评论

C语言的注释要注意几点

点击蓝字关注我们如果领导给你一个项目的源码让你阅读,并理解重构代码,但里面一句注释都没有,我想这肯定是之前同事“删库跑路”了。看一份源码什么很重要?除了各种代码规范之外,还有一个比较重要的就是注释。注释虽然写起来很痛苦, 但对保证代码可读性至关重要,下面的将描述如何注释以及在哪儿注释。注释风格1.总述一般使用//或/**/,只要统一就好。2.说明//或/**...
转载
发布博客 2022.06.27 ·
5 阅读 ·
0 点赞 ·
0 评论

大牛谈嵌入式C语言的高级用法

点击蓝字关注我们内存管理我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。内存的使用时程序设计中需要考虑的重要因素之一,这不仅由于系统内存是有限的(尤其在嵌入式系统中),而且内存分配也会直接影响到程序的效率。因此,我们要对C语言中的内存管理,有个系统的了解。在C语...
转载
发布博客 2022.06.25 ·
11 阅读 ·
0 点赞 ·
0 评论

很棒的C语言入门笔记,推荐收藏!

点击蓝字关注我们c语言入门C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。hello,world#include<stdio.h>intmain(){...
转载
发布博客 2022.06.25 ·
86 阅读 ·
0 点赞 ·
0 评论

关于多线程的几道面试题

点击蓝字关注我们第一题:线程的基本概念、线程的基本状态及状态之间的关系?线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源(如打开文件和信号)。线程有四种状态:新生状态、可运行状态、被阻塞状态、死亡状态。状态之间的转换如下图所示:第二题:线程与进程的区别?1、 ...
转载
发布博客 2022.06.24 ·
19 阅读 ·
0 点赞 ·
0 评论

C/C++ 命中率比较高的面试知识点,你都答得上来吗

点击蓝字关注我们第一部分:计算机基础1. C/C++内存有哪几种类型?C中,内存分为5个区:堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量)和常量存储区(常量)。此外,C++中有自由存储区(new)一说。全局变量、static变量会初始化为缺省值,而堆和栈上的变量是随机的,不确定的。2. 堆和栈...
转载
发布博客 2022.06.24 ·
29 阅读 ·
0 点赞 ·
0 评论

C语言代码优化的方法

点击蓝字关注我们在本篇文章中,我(指原作者)收集了很多经验和方法。应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码。简介在最近的一个项目中,我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级JPEG库。期间,我总结了一些让程序运行更快的方法。在本篇文章中,我收集了一些经验和方法。应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来...
转载
发布博客 2022.06.23 ·
23 阅读 ·
0 点赞 ·
0 评论

​常问的16个C语言问题,你能答上来几个?

点击蓝字关注我们最近不少小伙伴在找工作,这里我给大家分享一下面试中经常会遇到的一些嵌入式C语言问题,你看看能答上来几个呢?1用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#defineSEC_YEAR(365*24*60*60)UL考察点:#define语法的基本知识(例如:不能以分号结束,括号的使用,等等)懂得预处理器将为你计算...
转载
发布博客 2022.06.23 ·
25 阅读 ·
0 点赞 ·
0 评论

C++ STL deque 容器底层实现原理(深度剖析)

点击蓝字关注我们什么是多态,多态有什么用途?定义:“一个接口,多种方法”,程序在运行时才决定调用的函数。实现:C++多态性主要是通过虚函数实现的,虚函数允许子类重写override(注意和overload的区别,overload是重载,是允许同名函数的表现,这些函数参数列表/类型不同)。目的:接口重用。封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代...
转载
发布博客 2022.06.22 ·
20 阅读 ·
0 点赞 ·
0 评论

进程、线程、协程三个概念傻傻分不清

点击蓝字关注我们进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。线程,在网络或多用户环境...
转载
发布博客 2022.06.22 ·
28 阅读 ·
0 点赞 ·
0 评论
加载更多