C语言学习的关键,是要先搞明白,学C语言到底是在学些什么?
我这么一问,有的同学就要翻开课本,指着目录说,我知道我知道,有变量,数据类型,循环语句,函数,哦哦哦,还有指针等等!
很遗憾,如果你以为学习C语言就是学习这些东西,那你得赶紧纠正一下看法,否则接下来的学习会困难重重。因为我曾经就是这么掉到坑里的,这种狭隘的观点让我浪费了大量的时间去学习琐碎的细节,又让我迟迟不能接触到更重要的知识,结果是眼高手低——知道许多别人不知道的无用知识,但是又写不出什么真正像样的程序来。
所谓“语法”,就是入门教材里最着重讲解的内容。也就是那些所谓的变量、数据类型、分支判断、循环、函数、指针等等。
这些内容比较枯燥,但是好消息是这些内容并不难,都是一些格式化的东西。只要你多练习,就会自动的刻在你的脑子里,成为一种下意识的习惯。
但是 “语法”本身其实没什么用。因为它只是一种格式规范,你学得再好,也不能引导你写出厉害的程序。因为在软件设计中,实际上最核心的部分还是在于其 “函数库”部分。
什么是 “函数库”?
简单来说,函数库就是别人编写好的C函数,直接提供给你用,你只要调用里面的函数,就能实现一定的功能。例如 printf() 函数,你肯定知道,只要调用这个函数,你就能够在那个黑糊糊的窗口里显示一段文字。你并不明白 printf() 的内部工作原理,但是你知道你只要按照说明去调用,就能够实现对应的功能。
这就是函数库——别人写好的,打包送到你面前,你可以自由调用来做各种各样的事情的函数集合。
我来说几个来自函数库的函数,例如 CreateWindowEx() 函数可以用来创建一个窗体(这个函数由微软提供),例如 GaussianBlur() 函数可以用来对一个图像进行高斯模糊处理(这个函数由 OpenCV 提供),再比如 evhttp_new() 函数可以创建一个 HTTP 服务程序(这个函数由 libevent 提供)……
其他还有什么库函数?太多了。从控制网络通信,到截取视频画面并分析其中的人脸位置,到加解密本地文件,甚至包括微信收发消息,抓取淘宝商品信息……库函数的数量和有用程度远远超乎大家的想象。
诶?你从来没听说过还有这些东西?课本里也没提到?
那是因为你看的是入门教材,着重讲解语法,顺带提到了少量的 C 语言自带的库函数而已。事实上 C 语言包含的库函数本身就有不少,但是更多更强大的还是许多第三方库函数,例如我上面提到的这些。
重点是在于,我想告诉你,库函数才是你学习C语言并将其应用于实际的关键!!
学会调用别人的库函数,甚至写出自己的库函数,都是极其重要的。因为一个函数,本质上就是一个功能单位。你拥有的基础设施越多,你的发挥空间越大。道理就是这么简单。这就是我需要向大家强调的第二个观点,要想写出实用的C程序,一大关键就是研究并学会使用各种库函数。
你看见隔壁王二写了个三维程序能让一个彩色的立方体在空中旋转?快找 OpenGL 库函数来用。什么?刘大宝写了个网络软件能在局域网里聊天?快找 Socket 库来用。
看见了吗?库函数有多重要?
但是,函数库的学习并不是孤立的。许多库函数背后需要一定的领域知识支撑。同样如我第一个观点所述,需要预备知识。学懂一个函数库,代表的不仅仅是明白如何调用那么简单, 而更反映了我们对一个特定领域——网络、数字图像、密码学、操作系统等的认识。
电气施工图纸会审工作要点
1、要审查设计图纸是否符合相关规范或有关技术质量标准,设计是否合理,考虑经济承受能力和投资取得的回报,设计和选用的产品应是开放型的,便于有条件时系统扩展、互联和信息共享。 2、要根据工程的特点和使用功能,明确业主对其项目的定位和需求。应提供意见和建议与业主,及早协调明确要设置哪些系统,以便所设系统与主体工程同步进行,避免主体完工后再上系统,难于施工,造成对建筑主体结构的破坏,加大返工
0评论2024-11-03313
电流互感器误差计算流程图
按书上的排版方式讲电流互感器误差计算感觉不简洁、不清晰,就做了这个流程图出来,自我感觉不错。欢迎同行指正。
0评论2024-11-03243
PLC编程学习的好处
一、可以提高电脑水平。 学习PLC编程,首先要学会各种PLC、触摸屏软件安装和卸载,打字当然也是必不可少的要求,软件中的菜单的应用相当于把电脑的基础知识好好的学习了一番,一些人用电脑只会用鼠标点击,久而久之,这其实还是电脑盲,而学好PLC编程,键盘鼠标都要配合使用。在电脑硬件方面,电脑配置要求,串口以及外置接口在学习中自然而然学好了。 二、自然而然也学好了英语。 PLC软件里面的指令L
0评论2024-11-03324
发电机定子转子一点接地现象及处理方法
发电机定子一点接地:现象:1) 警铃响,发电机“定子一点接地”光字牌亮;2) 定子绝缘检查,接地的一相电压为零或降低,其余相为线电压或升高。处理:1) 据表计判明是真接地还是假接地;2) 如定子接地保护投了“跳闸”但保护拒动,应立即手动解列发电机;3) 定子接地保护投信号时,如发信应立即查找接地点,接地光字牌设法予以消除;4) 若为真接地,且外部回路设备无明显接地点,应迅速汇报值长、中调,然
0评论2024-11-03284
电梯在维修时的用电安全规定
1.在电梯进行维修或定期检修试车时,必须断开总电源。电梯轿厢内不可载客或装货,同时应在层门口、轿内操纵箱、机房控制柜等处,悬挂“检修停用”、“不许合闸”、“正在修理,不可开动”等内容的警告牌,试车时应有专人统一指挥,根据指挥人员所发的指令,才能摘去警告牌或开动电梯。 2.电梯进行检查、试验、修理、清洁工作时应将机房电源开关断开,以保证安全。 3.电梯检查维修时,必须使用36V以下的安全电
0评论2024-11-03376
高压配电网对于无功补偿的具体应用分析
无功补偿在维持电网运行所需要的足够无功功率之外,能够通过将多余部分的无功功率去除,从而达到对于电网运行环境的优化,目前我国正在大力地推动无功补偿在全面合理的规划及布局基础上的分散补偿的实施,力求推动整个电网的就地平衡。本文下面就针对无功补偿在高压电网中的应用进行一下分析:1)配电网的自动跟踪补偿目前,高压配电网的管理人员主要利用固定及可变阻抗型,这样两种自动补偿的装置来进行无功补偿,其中固定
0评论2024-11-03344
51单片机的上拉电阻一般多大
1、51单片机的p0口为了实现准3态,采用了oc输出,也就是集电极悬空输出,也有叫图腾柱输出的。这种电路结构,只有下拉能力,高电平输出没有电流,在高电平时表现为高阻态;加上上拉电阻,就会失去高阻态,变成 1、0 两态。2、p0口上拉电阻的选择,应遵循基本的电路设计原则,不能盲目套用,要看后级情况而定:例如,后级驱动的是1只npn三极管,这个三极管的放大倍数(β)=100倍,三极管的负载电流(
0评论2024-11-03328
高压负荷开关的灭弧原理和使用注意事项
灭弧原理 (FN3-10R)---利用分闸时主轴带动活塞压缩空气,使压缩了的空气由喷嘴中高速喷出而吹灭电弧的;FN5-10D---有整套灭弧装置的灭弧管构成。(真空管) 特点 A、可以隔离电源,有明显的断开点,多用于固定式高压设备。 B、具有灭弧装置和一定的分合闸速度,在合闸状态下可以通过正常工作电流和规定的短路电路。 C、严禁带负荷接通和断开电路,常与高压熔断器串连使用。(
0评论2024-11-03378
伺服驱动器的高速脉冲指令输入
如果上位机是一高速脉冲指令方式输出,伺服驱动器只能通过差分驱动方式接收脉冲指令。如图:这里务必保证差分输入的电压为5V,否则伺服驱动器的输入脉冲不稳定,会导致脉冲输入丢失现象,或出现脉冲指令取反现象。上位机的5V地必须与驱动器的GND地相连接,以降低噪声干扰。 差分输入方式就是采用差动放大器,如同RS422,RS485通信线路一样。差分驱动器具有较高的操作频率,因此上位机可以传送较高频率的
0评论2024-11-03175
电动机运行中的检查项目
通常,电动机运行时,要监控如下几方面内容: (1)电动机电流是否超过允许值。 (2)轴承的温度及润滑是否正常。电动机轴承的最高允许温度,应遵守制造厂的规定。无制造厂的规定时,可按照如下标准:①滑动轴承不得超过80摄氏度;②滚动轴承不得超过100摄氏度。 (3)电动机有无异常音响。 (4)对直流电动机和电刷经常压在滑环上运行的绕线式转子电动机,应注意电刷是否有冒火或其他异常现象。 (
0评论2024-11-03214