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

【C语言学习】C语言初探

第一个C语言程序

#include <stdio.h>

int main() {
  // puts 是 output string 的缩写,即在控制台输出字符串
    puts("Hello,C!");
    return 0;
}

源文件、编译和链接

源文件其实就是纯文本文件,它的内部并没有特殊格式。

不管我们编写的代码有多么简单,都必须经过「编译 --> 链接」的过程才能生成可执行文件:

  • 编译就是将我们编写的源代码“翻译”成计算机可以识别的二进制格式,它们以目标文件的形式存在;

  • 链接就是一个“打包”的过程,它将所有的目标文件以及系统组件组合成一个可执行文件

C语言编译器

在这里插入图片描述

分析第一个C语言程序

#include <stdio.h>
// main()是一个函数
int main() {
  // puts 是 output string 的缩写,即在控制台输出字符串
    puts("Hello,C!");
    return 0;
}

函数的概念

main(){...}这样的一段代码能够独立地完成某个功能,一次编写完成后可以重复使用,被称为函数(Function)。

自定义函数和main函数

C语言自带的函数称为库函数(Library Function)库(Library)是编程中的一个基本概念,可以简单地认为它是一些列函数的集合,在磁盘上往往是一个文件夹。C语言自带的库称为标准库(Standard Library),其他公司或个人开发的库称为第三方库(Third-Party Library)

除了库函数,我们还可以编写自己的函数,拓展程序的功能。自己编写的函数称为自定义函数。自定义函数和库函数在编写和使用方式上完全相同,只是由不同的机构来编写。

C语言规定,一个程序必须有且只有一个 main 函数。main 被称为主函数,是程序的入口函数,程序运行时从 main 函数开始,直到 main 函数结束(遇到 return 或者执行到函数末尾时,函数才结束)。

头文件的概念

C语言开发者们编写了很多常用函数,并分门别类的放在了不同的文件,这些文件就称为头文件(header file)。每个头文件中都包含了若干个功能类似的函数,调用某个函数时,要引入对应的头文件,否则编译器找不到函数。

实际上,头文件往往只包含函数的说明,也就是告诉我们函数怎么用,而函数本身保存在其他文件中,在链接时才会找到。

引入头文件使用#include命令,并将文件名放在< >中,#include 和 < > 之间可以有空格,也可以没有。

头文件以.h为后缀,而C语言代码文件以.c为后缀,它们都是文本文件,没有本质上的区别,#include命令的作用也仅仅是将头文件中的文本复制到当前文件,然后和当前文件一起编译。

较早的C语言标准库包含了15个头文件,stdio.h 和 stdlib.h 是最常用的两个:

  • stdio 是 standard input output 的缩写,stdio.h 被称为“标准输入输出文件”,包含的函数大都和输入输出有关,puts() 就是其中之一。

  • stdlib 是 standard library 的缩写,stdlib.h 被称为“标准库文件”,包含的函数比较杂乱,多是一些通用工具型函数,system() 就是其中之一。

相关文章:

  • R语言处理表格数据(一)
  • Java开发环境配置
  • JS手写Promise(详细过程)
  • Postman接口测试之断言
  • C语言基础 — ( C语言的链表实例)
  • 社科院与杜兰大学金融管理硕士项目,承载着你读研时光的喜与乐
  • 再了解一点Ribbon的重试机制
  • MySQL5.7安装教程
  • Python 3.9 有什么新变化 - 新的特性
  • 为什么我们认为GPT是一个技术爆炸
  • JavaSE进阶之(十六)枚举
  • [数据结构]直接插入排序、希尔排序
  • 10个杀手级应用的Python自动化脚本
  • Python截图自动化工具
  • avue强大的upload表单项内置方法的使用,用这个可以配合$DialogForm.show()弹框完美使用上传控件
  • C语言高级操作(四)——exex函数族
  • 一行代码“黑”掉任意网站
  • 蓝桥杯刷题冲刺 | 倒计时18天
  • 软件测试拿了几个20K offer,分享一波面经
  • 【面试题】大厂面试官:你做过什么有亮点的项目吗?
  • HTB-baby~
  • Docker使用DockerFile部署Go项目
  • 自己设计的网站,如何实现分页功能?(详细代码+注释)
  • O2O、C2C、B2B、B2C是什么意思
  • 带你一文透彻学习【PyTorch深度学习实践】分篇——加载数据集(Dataset类、DataLoader类核心参数讲解)附:实例源代码
  • 基于html+css的图片居中排列
  • Python通用验证码识别OCR库ddddocr的安装使用
  • 「无服务器架构」无服务器架构是应用程序的正确选择?需要考虑利弊。
  • Pycharm中修改git提交代码的账户和用户名【Git追溯注解,git blame】
  • 中介变量、调节变量与协变量