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

【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() 就是其中之一。


http://www.kler.cn/a/6204.html

相关文章:

  • DjangoORM字段参数、常用字段类型及参数、模型和表单验证器详解
  • 前端异常处理合集
  • 神经网络入门实战:(二十三)使用本地数据集进行训练和验证
  • Spring Boot 中的 classpath详解
  • 【每日学点鸿蒙知识】导入cardEmulation、自定义装饰器、CallState状态码顺序、kv配置、签名文件配置
  • DeepSeek-VL2
  • SpringBoot定时任务——利用注解实现
  • 谷粒商城-redis分布式锁系列
  • Linux环境变量、Linux自定义设置环境变量
  • 核心 Android 调节音量的过程
  • 关于层序遍历的九道题
  • Linux命令·wc
  • 蓝桥杯3月刷题集训-A 【枚举模拟】Day3
  • 【基础算法】哈希表
  • 定点乘法器----部分积压缩(华为杯)
  • volatile、synchronize的特点和区别
  • python_接口自动化测试框架
  • 都说IT行业饱和了,2023年成为程序员还有发展前景吗?
  • 《Effective Objective-C 2.0 》 阅读笔记 item10
  • 从大到小排序-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第3章-课后作业)
  • 第6章 封装组件高级篇(下) - table
  • 【经验】PCB拼板,不得不注意的10个问题,要收藏哦!
  • MySQL-事务
  • spark sql(五)sparksql支持查询哪些数据源,查询hive与查询mysql的区别
  • 【新2023Q2模拟题JAVA】华为OD机试 - 二叉树层次遍历
  • Linux下 lsof 命令详解