第2章 C程序开发快速入门

2.1 开发工具的选择

1、Visual Studio

Visual Studio(简称 VS)是由微软公司发布的集成开发环境,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等。

2、Code::Block

Code::Block是一个免费的跨平台IDE,它支持C、C++和Fortan程序的开发,Code::Block的最大特点是它支持通过插件的方式对IDE自身功能进行扩展,这使得Code::Block具有很强的灵活性,方便用户使用。

3、Clion

CLion是一款由JetBrains推出的跨平台C/C++集成开发环境(IDE),它具有智能编辑器、CMake构建支持、调试器、单元测试、代码分析等功能,可以极大提高C/C++开发效率。

4、VS Code

Visual Studio Code(简称VS Code)是一款由Microsoft开发的免费、开源的代码编辑器,它是一种轻量级但功能强大的集成开发环境(IDE),VS Code旨在提供一种优秀的编码体验,适用于各种编程语言和应用程序开发任务。VS Code 用于编辑 C 代码,我们还需要 C 编译器来运行 C 代码,所以安装 VS Code之前我们需要先安装 ((20250319204122-svh9omr “C 编译器”))

5、在线编辑工具

CodingGroundOnlineGDBLightly

6、C编译器MinGW-w64

MinGW-w64 是一个用于Windows操作系统的开发工具集,其包含了C语言编译器 GCC(GNU Compiler Collection)。

2.2 年轻人第一个C程序

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

注意:VS Code编写程序时,程序存放的路径不能包含中文

2.3 C程序运行机制流程

在这里插入图片描述

1、编写

编写C语言源程序代码,并以文件的形式存储到磁盘中,源代码文件以“.c”作为扩展名,如本项目中main.c 文件。

2、预处理

在编译之前,预处理器会处理源代码文件,主要进行一些文本上的处理,包括去掉多余的空格和注释,处理预处理指令(后面会学到),生成经过处理的源代码文件,通常带有.i扩展名。gcc -E main.c -o main.i 生产 main.i 文件,此为经过预处理的源文件

3、编译

编译器接受预处理后的源代码文件,并将其翻译成汇编代码,生成汇编文件,通常带有.s或.asm扩展名。gcc -S main.i -o main.s 生产 main.s 文件,此为汇编文件

4、汇编

汇编器将汇编代码翻译成机器码并生成一个或多个目标文件,目标文件是二进制文件,通常带有.o(在Unix-like系统上)或.obj(在Windows上)gcc -c main.s -o main.o 生产 main.o 文件,此为二进制文件

5、链接

链接器将多个目标文件(如果有的话)合并在一起,包括C标准库文件和其他库文件,生成最终的可执行的二进制程序(.exe 文件)。gcc main.o -o main.exe 生产 main.exe 文件,此为可执行文件。
库文件是由系统提供,里面包括内置的标准函数和数据结构集合等,我们代码中使用的 <stdio.h> 就是标准库提供的,里面定义 printf 这个函数。

链接有两种链接方式:动态链接和静态链接
6、注意事项

①C程序源文件以"c"为扩展名。
②C程序的执行入口是main() 函数。
③C语言严格区分大小写。
④C语言由一条条语句构成,每个语句以‘;’结束。

2.4 代码内容

1、注释

对代码进行解释说明,帮助理解代码的意图、功能和逻辑

(1)单行注释//

(2)多行注释/* */

2、输出内容

使用printf()输出内容到终端,要输出的内容需要用双引号包裹,\n为换行

3、变量

变量是内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化。通过变量名,可以引用这块内存区域,获取里面存储的值

变量的构成包含三个要素:数据类型、变量名、存储的值

(1)变量的声明

#include <stdio.h>
int main()
{
    // 声明一个整型变量,取名为 a
    int a;
    // 对变量 a 进行赋值
    a = 100;
    // 声明一个整型变量,取名为 b,并直接赋值
    int b = 200;
    // 修改变量 b 的值, 将变量 a 的值赋值给 b
    b = a;
    // 同时声明多个整型变量并赋值
    int c1 = 10, c2 = 20, c3 = 30;
    return 0;
}

(2)输出变量

在这里插入图片描述

①格式化字符串是用双引号括起来的一个字符串,里面包括格式占位符和普通字符

②格式占位符,也叫格式声明符,由“%”和格式字符组成,作用是将输出的数据转换为指定的格式后输出,这里“%d”表示整数

③输出列表是程序需要输出的一些数据,可以是常量、变量或表达式,与格式占位符一一对应

printf("b=%d \n", b);

(3)输入数据赋值给变量

canf主要用于从标准输入(通常是键盘)读取数据并将其存储到指定的变量中(变量需要提前声明),同printf一样,位于头文件 <stdio.h> 中

在这里插入图片描述

scanf("%d", &num);需要注意的是,scanf中,变量名前面需要添加 & 符号,该符号称为取地址符

4、标识符

C语言中变量、函数、数组名、结构体等要素命名时使用的字符序列,称为标识符

(1)标识符命名规范

①强制规范:
	a.只能由小写或大写英文字母,0-9 或 _ 组成
	b.不能以数字开头
	c.不可以是关键字
	d.标识符具有长度限制,不同的编译器和平台会有所不同,一般限制在63个字符内
	e.严格区分大小写字母
②建议规范
	a.为了提高阅读性,使用有意义的单词
	b.使用下划线连接多个单词组成的标识符,如:max_classes_per_student
	c.多个单词组成的标识符,除了使用下划线连接,也可以使用小驼峰命名法,除第一个单词外,后续单词的首字母大写,如:maxClassesPerStudent
	d.不要出现仅靠大小写区分不同的标识符,如:name、Name容易混淆
	e.系统内部使用了一些下划线开头的标识符,比如,C99标准添加的类型 `_Bool`,为防止冲突,建议开发者尽量避免使用下划线开头的标识符
5、关键字

关键字是一些具有特殊含义的保留单词

ANSI C有32个关键字

类型具体关键字
控制语句关键字(12 个)break, case, continue, default, do, else, for, goto, if, return, switch, while
数据类型关键字(12 个)char, enum, double, long, float, int, short, signed, struct, unsigned, union,void
存储类型关键字(4 个)auto, extern, register, static
其他关键字(4 个)const, sizeof, typedef, volatile

C99标准增加了5个关键字:inline、restrict、_Bool、_Complex和_Imaginary。

C11标准增加了7个关键字:_Alignas、_Alignof、_Atomic、_Static_assert、_Noreturn、_Thread_local和_Generic。

6、常量

程序运行时,其值不能改变的量

(1)分类

①字面量常量:直接使用的常量,不需要定义或声明,包括整数常量、浮点数常量、字符常量
②标识符常量,使用标识符作为常量名,包括`#define`定义的标识符常量和`const`关键字定义的标识符常量以及枚举常量

(2)使用#define定义常量

#define 来定义常量,也叫作宏定义,就是用一个标识符来表示一个常量值,如果在后面的代码中出现了该标识符,那么编译时就全部替换成指定的常量值,即用宏体替换所有宏名,简称宏替换

格式:#define 常量名 常量值

注意:①不要以分号结尾,如有分号,分号会成为常量值的一部分。②#define 必须写在 main 函数的外面

(3)使用const关键字

这种方式跟定义一个变量是一样的,只需要在变量的数据类型前再加上一个const关键字。跟使用 #define定义宏常量相比,const定义的常量有详细的数据类型,而且会在编译阶段进行安全检查,在运行时才完成替换,所以会更加安全和方便

格式:const 数据类型 常量名 = 常量值;

(3)#define定义常量和const定义常量的区别

①执行时机:define是预处理指令,在编译之前执行;const是关键字,在编译过程中执行
②类型检查:define定义常量不用指定类型,不进行类型检查,只是简单地文本替换;const定义常量需指定数据类型,会进行类型检查,类型安全性更强
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mephisto_123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值