当前位置: 首页 > news >正文

C语言函数详解(上)【库函数】

目录

前言

一、函数的概念

二、库函数

1.标准库和头文件

2.库函数使用方式

3.如何通过以上的网站查看库函数信息 (以sqrt为例)

3.1 功能

3.2 头文件包含

3.3 库函数文档的⼀般格式

1. 函数原型  

​编辑2. 函数功能介绍    

​编辑3. 参数和返回类型说明  (Return   Value)

​编辑4. 代码举例    (Example)

​编辑5. 代码输出     (Output)

​编辑6. 相关知识链接     (See  also)

总结


前言

对于函数这个名词,我相信大家并不陌生,y = kx+b,k和b都是常数,给⼀个任意的x,就
得到⼀个y值,但对于C语言的函数,我们是不是也是这样理解的,话不多说,正文开始。


一、函数的概念

其实在C语⾔也引⼊函数(function)的概念,有些翻译为:子程序,⼦程序这种翻译更加准确⼀些。C语⾔中的函数就是⼀个完成某项特定的任务的⼀⼩段代码。这段代码是有特殊的写法和调⽤⽅法的。C语⾔的程序其实是由⽆数个⼩的函数组合⽽成的;

也可以说:⼀个⼤的计算任务可以分解成若⼲个较⼩的函数(对应较⼩的任务)完成。同时⼀个函数如果能完成某项特定任务的话,这个函数也是可以复⽤的,提升了开发软件的效率。

再C语言中一般有两种函数:

  • 库函数
  • ⾃定义函数

二、库函数

1.标准库和头文件

C语⾔标准中规定了C语⾔的各种语法规则,C语⾔并不提供库函数;C语⾔的国际标准ANSI C规定了⼀些常⽤的函数的标准,被称为标准库,那不同的编译器⼚商根据ANSI提供的C语⾔标准就给出了⼀系列函数的实现。这些函数就被称为库函数

我们前⾯内容中学到的 printf 、 scanf 都是库函数,库函数的也是函数,不过这些函数已经是现
成的,我们只要学会就能直接使⽤了。有了库函数,⼀些常⻅的功能就不需要程序员⾃⼰实现了,⼀定程度提升了效率;同时库函数的质量和执⾏效率上都更有保证。 

用通俗易懂的话讲就是:平常常常使用的函数C语言标准库不实现函数,而是给定标准(函数名,参数,功能......);那谁来实现呢?当然是编译器厂商来实现了;比如:微软:msvc、苹果:clang、还有一些开元组织:gcc......(根据标准约定实现)

各种编译器的标准库中提供了⼀系列的库函数,这些库函数根据功能的划分,都在不同的头⽂件中进⾏了声明。
库函数相关头⽂件:C 标准库头文件 - cppreference.comicon-default.png?t=N7T8https://zh.cppreference.com/w/c/header
有数学相关的,有字符串相关的,有⽇期相关的等,每⼀个头⽂件中都包含了,相关的函数和类型等信息,库函数的学习不⽤着急⼀次性全部学会,慢慢学习,各个击破就⾏ 。

2.库函数使用方式

库函数的学习和查看⼯具很多,⽐如:

C/C++官⽅的链接:C 标准库头文件 - cppreference.comicon-default.png?t=N7T8https://zh.cppreference.com/w/c/header

cplusplus.com:C 库 - C++ 参考 (cplusplus.com)icon-default.png?t=N7T8https://legacy.cplusplus.com/reference/clibrary/举例:sqrt

double sqrt (double x);
//sqrt 是函数名
//x 是函数的参数,表⽰调⽤sqrt函数需要传递⼀个double类型的值
//double 是返回值类型 - 表⽰函数计算的结果是double类型的值
#include <stdio.h>
#include <math.h>int main()
{int ret = (int)sqrt(100);  //返回double类型printf("%d", ret);return 0;
}

3.如何通过以上的网站查看库函数信息 (以sqrt为例)

3.1 功能

Compute square root 计算平⽅根
Returns the square root of x.(返回平⽅根)

Returns

3.2 头文件包含

库函数是在标准库中对应的头⽂件中声明的,所以库函数的使⽤,务必包含对应的头⽂件,不包含是可能会出现⼀些问题的。

3.3 库函数文档的⼀般格式

1. 函数原型  

2. 函数功能介绍    

3. 参数和返回类型说明  (Return   Value)

4. 代码举例    (Example)

5. 代码输出     (Output)

6. 相关知识链接     (See  also)

 


总结

这期主要分享了如何学习库函数,这个过程很漫长,希望大家可以与我一同坚持下,下期见!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 十要素超声波气象传感器
  • 「数组」希尔排序 / 区间增量优化(C++)
  • SpringBoot 整合 Excel 轻松实现数据自由导入导出
  • Browserless 网页抓取:Playwright 中的 NodeJS
  • 第2章 C语言基础知识
  • Windows C++控制台菜单库开发与源码展示
  • Java 调整字符串,验证码生成
  • Qt第十七章 多线程
  • ElfBoard技术贴|如何在ELF 1开发板上搭建流媒体服务器
  • 高性能web服务器nginx
  • Mac文件需要分卷压缩怎么办 Mac上怎么解压分卷压缩的文件
  • 二、什么是Vue中的响应式?Vue的响应式原理
  • Linux驱动学习之点灯(四,linux2.6)
  • 电子电气架构 --- 软件定义汽车需要怎么样的EE架构
  • Excel“取消工作表保护”忘记密码并恢复原始密码
  • css系列之关于字体的事
  • Gradle 5.0 正式版发布
  • JavaScript 基本功--面试宝典
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JSDuck 与 AngularJS 融合技巧
  • Linux CTF 逆向入门
  • python docx文档转html页面
  • 阿里云Kubernetes容器服务上体验Knative
  • 浮现式设计
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 排序算法学习笔记
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 入门级的git使用指北
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #Lua:Lua调用C++生成的DLL库
  • #QT(串口助手-界面)
  • (安卓)跳转应用市场APP详情页的方式
  • (二)换源+apt-get基础配置+搜狗拼音
  • (分布式缓存)Redis持久化
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (转)树状数组
  • .NET C# 使用 iText 生成PDF
  • .NET IoC 容器(三)Autofac
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 表达式计算:Expression Evaluator
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET 直连SAP HANA数据库
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .Net插件开发开源框架
  • .net的socket示例
  • .net和jar包windows服务部署
  • .Net语言中的StringBuilder:入门到精通