C语言程序基础

  • 1基础概念
    • 1.1源文件
    • 1.2目标文件与可执行文件
  • 2基础工具
    • 2.1 IDE(集成开发环境)
    • 2.2工程/项目
  • 3第一个C语言程序
    • 3.1函数
      • 3.1.1自定义函数和main函数
    • 3.2头文件
    • 3.3空白符
    • 3.4令牌(Token)

1基础概念

1.1源文件

用来保存编写好代码的文件叫做源文件
每种编程语言的源文件都有特定的后缀,源文件后缀大都根据编程语言本身的名字来命名,例如:

  • C语言源文件的后缀是.c;
  • C++语言(C Plus Plus)源文件的后缀是.cpp;
  • Java 源文件的后缀是.java;
  • Python 源文件的后缀是.py;
  • JavaScript 源文件后置是.js。

源文件为纯文本文件,其内部并没有特殊格式。

1.2目标文件与可执行文件

  • 程序员编写的程序称为源代码
  • CPU 可以直接识别,直接运行的程序称为可执行程序

CPU只可以识别并运行可执行程序,从而需要将源代码转换成可执行程序。

  • 源代码经过编译生成目标文件
  • 目标文件经过链接变成可执行文件

目标文件及可执行文件都为二进制形式,编译只将源代码变成二进制形式,但还需要与系统组件(比如标准库、动态链接库等)链接起来。

2基础工具

编译器即用来识别源代码中的词汇、句子以及各种特定的格式,并将其转换成计算机能够识别的二进制形式,这个过程称为编译

链接实质上是一个“打包”的过程,它将所有二进制形式的目标文件和系统组件组合成一个可执行文件。完成链接的软件,叫做链接器

  • 编译器每次只能编译一个源文件,生成一个目标文件;
  • 链接器需要将目标文件和系统组件组合起来,还需要将编译器生成的多个目标文件组合起来。

2.1 IDE(集成开发环境)

集成开发环境就是一系列开发工具的组合套装。实际开发中,除了编译器是必须的工具,还需要很多其他辅助软件,例如:

  • 编辑器:用来编写代码,并且给代码着色,以方便阅读
  • 代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程
  • 调试器:观察程序的每一个运行步骤,发现程序的逻辑错误
  • 项目管理工具:对程序涉及到的所有资源进行管理,包括源文件、图片、视频、第三方库等
  • 漂亮的界面:各种按钮、面板、菜单、窗口等控件整齐排布,上手操作

这些工具通常被打包在一起,统一发布和安装形成软件,统称为集成开发环境(IDE,Integrated Development Environment),例如Visual Studio等。

2.2工程/项目

实际开发中,一个程序需要实现多种功能并且包含很多其他资源文件(视频,框架等),将这些文件放在同一个目录下,形成一个“Project”即“项目”/“工程”。(一个程序所有文件的集合)

工程类型/项目类型:

  • 不带界面,完全是“黑屏”的,只能输入一些字符或者命令,称为控制台程序(Console Application)
  • 带界面,能够使用鼠标操作,称为GUI程序(Graphical User Interface Program)
  • 不单独出现,而是作为其它程序的一个组成部分,例如静态库、动态库等

不同的程序对应不同的工程类型(项目类型)。

3第一个C语言程序

#include <stdio.h>
int main()
{printf("Hello World!\n");return 0;
}

3.1函数

  • 必须带括号的语句称为函数(能够独立完成某个功能,一次编写完成后可以重复使用的一段代码。)

printf("Hello World!\n");是一段具有输出功能的代码,这段代码的名字是printf;
"Hello World!"是要交给这段代码处理的数据。
使用函数在编程中叫做函数调用(Function Call)

3.1.1自定义函数和main函数

  • C语言自带的函数称为库函数(Library Function);自己编写的函数称为自定义函数

  • C语言规定,一个程序必须有且只有一个 main 函数。main 被称为主函数,是程序的入口函数

程序运行时从 main 函数开始,直到 main 函数结束(遇到 return 或者执行到函数末尾时,函数才结束)。

int main()
{printf("Hello World!\n");return 0;
}

这段自定义函数:
1.main — 函数的名字/主函数,程序从这里开始执行;
2.( ) — 表明函数定义;
3.{ } — 函数要实现的功能的代码。
4.return 0:函数终止,接收待处理数据并将结果利用return告知,处理结果称为返回值

3.2头文件

#include<stdio.h>
C语言开发者们将很多常用函数编写并分门别类的放在了不同的文件内,这些文件就称为头文件

  • 引入头文件使用"#include"命令,并将文件名放在"< >“中(”#include"命令作用是将头文件中文本复制到当前文件,和当前文件一起编译)
  • 头文件以".h"为后缀,不一定要引用。

3.3空白符

空格制表符换行符等统称为空白符(space character),它们只用来占位,并没有实际的内容,也显示不出具体的字符。

  • “函数"和”()“之间、” “和”()"之间可以有任意的空白符,它们会被编译器忽略
  • 由" "包围起来的字符串中空白符不会被忽略,会被原样输出在控制台上
  • 字符串间不能换行,会发生编译错误。

3.4令牌(Token)

分号(;) 结束符
注释 //或/* */
标识符 识别变量、函数或其他
关键字 c的保留字

【C语言自学笔记】C语言程序基础(文件/工具/第一个C语言程序)相关推荐

  1. C语言入门 —— 非科班大一学生的C语言自学笔记

    初入前端的北京某211大一非科班生(没错上学期还是日语生)的C语言自学笔记 本文约8k字,将介绍:编程基础 数据类型 表达式 语句与控制流 函数 数组,指针 结构体等会随着学习进度推进持续更新~ 学习 ...

  2. Go语言编程笔记12:web基础

    Go语言编程笔记12:web基础 图源:wallpapercave.com 开一个新坑,用Go来做web开发.虽然已经从事多年基于LAMP的web开发,但最近学习了Go编程,所以打算借着学习<G ...

  3. Linux(b站视频兄弟连)自学笔记第十章——shell基础

    Linux(b站视频兄弟连)自学笔记第十章--shell基础 概述 Shell是什么? Shell的分类 Linux支持的Shell 脚本的执行方式 echo输出命令 第一个脚本 脚本执行 Bash的 ...

  4. JavaSE自学笔记Real_008(多线程基础)

    JavaSE自学笔记Real_008(多线程基础) 线程的优先级设置(priority) 线程的优先级用数字表示,范围是1到10(在范围之外会报错) Thread.MIN_PRIORITY = 1 T ...

  5. C语言在main中输入2个整数ab,请教一个C语言问题。若输入3个整数3,2,1,则以下程序输出的结果是.,c 语言问题 输入三个整数 按从小到大输出...

    导航:网站首页 > 请教一个C语言问题.若输入3个整数3,2,1,则以下程序输出的结果是.,c 语言问题 输入三个整数 按从小到大输出 请教一个C语言问题.若输入3个整数3,2,1,则以下程序输 ...

  6. FPGA自学笔记(二)仿真文件tb

    FPGA自学笔记(二)仿真文件tb 一.创建文件 创建 simulation sources ,命名为 tb_模块名. 二.代码 1.定义reg,wire 因为要测试一个模块,所以该模块的input应 ...

  7. 《零基础看得懂的C语言入门教程 》——(三)轻轻松松理解第一个C语言程序

    一.学习目标 了解C语言代码的一般结构 了解函数的概念 了解printf函数的使用方法 了解头文件的概念 了解system函数的使用方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语 ...

  8. 零基础学c语言职坐标,C语言自学入门|最全基础知识总结!

    C语言作为一门非常适合编程入门的语言,打好基础的重要性不言而喻.所以特此奉上这一篇很干很干的干货,希望小伙伴们能从中受益. 一.C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成.格式 ...

  9. 9.22 C语言自学笔记

    每一个数组都要遍历 字符串的表示方法 char arr1[]={'a','98','c'};//如果没有\0表示字符串的结束,则会printf任意值 所以要手动在最后加入'\0'char arr2[] ...

最新文章

  1. Jmeter干货 不常用却极其有用的几个地方
  2. matlab怎么在c 中调用,在C中调用Matlab (转)
  3. html dom获得父div,获取元素的父div
  4. NVMe SSD是什么?
  5. 3D游戏开发套件指南(入门篇)
  6. windows下搭建hadoop+eclipse开发环境
  7. (八)cmockery中的calculator和run_tests函数的注释代码
  8. 宁波政务云资源的介绍与申请
  9. Reactive(2) 响应式流与制奶厂业务
  10. OpenShift 4 - 通过DaemonSet在指定Node上运行守护程序
  11. hiho一下 第六十六周
  12. ThinkPHP3.2.3--Linux服务器首页文件index.php路径配置问题
  13. 阿里云资深技术专家何勉:研发效能提升的系统方法
  14. photoshop印章效果制作
  15. PyTorch搭建双向LSTM实现时间序列预测(负荷预测)
  16. 互联网公司面试题以及范围
  17. windows一段时间后发现C盘满了如何检查并清理
  18. FT232RL如何区分正品与盗版
  19. python优雅代码大全_10个Python技巧帮你写出更优雅的代码
  20. unity 地图画格_Unity2D 四边形与六边形网格地图寻路 [新手]

热门文章

  1. 另一种实现 Fruit Ninja 里刀光效果的方法
  2. 用JAVA实现简单的扑克牌洗牌发牌并排序
  3. FreeBSD安装时的参考文章
  4. sqlldr入库Oracle
  5. 10kv电压互感器型号_10KV上互感器的选型
  6. 破解网页禁止复制的方法
  7. UI设计行业中的“延禧攻略”,教你从青铜变王者
  8. C语言编写程序助手,C语言代码实例助手下载
  9. 一只很二的兔子走红网络
  10. java 好和不好的形容词 英语怎么说_英语对比形容词50个