文章目录
- 1、C 语言 -- 基本程序结构
- 2、C 实例 -- Hello World
- 3、接下来我们详细讲解一下上面这段程序:
- 4、一些注意项
- 5、在 VScode 编译 & 执行第一个 C 程序
- 5.1、打开 VSCode -> File(文件)-> Open Folder(打开文件夹)
- 5.2、新建 -> 文件夹 -> 文件夹命名为 code(建议不要带中文字符)
- 5.3、在弹出的窗口,然后选择该文件夹
- 5.4、如果弹出此窗口,选择“是,我信任此作者”即可
- 5.5、然后点击 File(文件)-> new File (新建文件)
- 5.6、弹出的窗口中,输入 hello.c 文件名
- 5.7、然后在弹出的窗口中,选择我们刚刚创建的路径
- 5.8、复制下方代码,粘贴到 hello.c 文件中
- 5.9、添加上述代码后,然后按 Ctrl+S 保存
- 5.10、然后点击编译,再点击运行
- 5.11、运行后,看到这个就是成功啦
- 6、编译方式选择:
- 7、更好玩的程序参考
暂时无法在飞书文档外展示此内容
1、C 语言 – 基本程序结构
C 程序主要包括以下 5 个部分:
- 头文件
- 函数
- 变量
- 语句
- 注释
没学过的同学肯定觉得很抽象!
今天让我们先来看看一个最小的 C 程序结构,分析第⼀个 C 语⾔程序(最简单基础程序) – Hello World,可以输出单词 “Hello World”。
2、C 实例 – Hello World
让我们看以下一段简单的代码,可以输出单词 “Hello World”:
#include <stdio.h> //头文件
//空白行
/* 我们的第一个 C 程序 */ //注释
int main() //函数
{ //函数体开始
printf("Hello, World! \n"); //输出语句
return 0; //结束并返回语句
} //函数体结束
3、接下来我们详细讲解一下上面这段程序:
- 程序的第一行 #include <stdio.h> 是
预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 的头文件。包含该头文件的目的是使用了函数 printf。 - 下一行
空白行。``主要是为了分隔代码,美化格式。 - 下一行
注释/* xxx */, 这里放置程序的注释内容,不执行,将会被编译器忽略。注释符一定要成对出现,不允许嵌套。 - 下一行
int main()是主函数,程序从这里开始执行。此行代码声明了一个 main() 函数,该函数是程序的入口,程序总是从 main() 函数开始执行。 - 下一行
{中的内容是函数体。{}:它们两个必须要成对出现。 - 下一行
printf(...)是一个C 库的函数,会把 “Hello, World!” 的字符串内容打印到屏幕上显示。
此行代码调用了一个用于格式化输出的函数 printf(),该函数用于输出一行信息,可以简单理解为向控制台输出文字或符号等。printf() 函数括号中的内容称为函数的参数,括号内可以看到输出的字符串 “Hello, world\n”,其中 “\n” 表示换行操作,它不会输出到控制台。
- 下一行
return 0;终止 main() 函数,并返回值 0。
此行代码中 return 语句的作用是将函数的执行结果返回,后面紧跟着函数的返回值,返回值一般用 0 或 -1 表示,0 表示正常,-1 表示异常。
- 下一行
}是函数体结束
4、一些注意项
很短,简单的几行文字,就创建了一个可以运行的程序,非常神奇。代码虽小,但五脏俱全,综观整个代码,可以总结如下特点:
(1)代码由单词,符号,空白组成。
(2)如同阅读小说一样,C 源代码也是从上往下阅读。也就是 C 源代码的先后顺序是有讲究的。行与行之间也可以有空白行。空白行数也是没有限制的。有的行顶格书写,有的行却又后退了几个空格,这种后退,称为“缩进”。如何缩进,这些也都是有讲究的。
(3)代码中的标点符号并不是随意输入的。每个符号在 C 中都有自己的含义。中出现的符号,有“#”、“<>”、“()”、“\”、“/”、“/”、“{}”、“;”、“””。单词与单词之间用空白分隔,空白可以是空格,也可以是 Tab 制表符。空白的个数没有限制。
(4)代码中不能使⽤中⽂符号,⽐如中文括号和中文分号。
5、在 VScode 编译 & 执行第一个 C 程序
下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它。
如果还没有安装或者搭建开发环境,请参考之前的文章:
如果不知道怎么搭建 VScode 环境请查看之前的文章
VSCode + GCC (MinGW) 安装教程链接:
(2.1.0)C 语言编程入门 – 开发环境搭建 – VSCode + MinGW(1)
(2.1.6)C 语言编程入门 – 开发环境搭建 – C 编译器 最新版本 MinGW 安装
下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它。
下面是简单的步骤:
5.1、打开 VSCode -> File(文件)-> Open Folder(打开文件夹)

5.2、新建 -> 文件夹 -> 文件夹命名为 code(建议不要带中文字符)

5.3、在弹出的窗口,然后选择该文件夹

5.4、如果弹出此窗口,选择“是,我信任此作者”即可

5.5、然后点击 File(文件)-> new File (新建文件)

5.6、弹出的窗口中,输入 hello.c 文件名
**注意:**这个文件名不要有空格,尽量不要有中文字符,不符合规范

5.7、然后在弹出的窗口中,选择我们刚刚创建的路径

5.8、复制下方代码,粘贴到 hello.c 文件中
#include <stdio.h>
int main()
{
/* 我的第一个 C 程序 */
printf("Hello, World! \n");
return 0;
}
5.9、添加上述代码后,然后按 Ctrl+S 保存
5.10、然后点击编译,再点击运行

或者右键选择 Run Code 直接编译运行,这个需要安装“C/C++ Runner”插件,也在之前的文章里教过大家。
5.11、运行后,看到这个就是成功啦

6、编译方式选择:
6.1、使用 C/C++ Runner(建议)
如果搭建环境时,安装了该插件,在新建工程后,可以看到菜单栏下方,有这几个按键,我们逐个点击“编译”,“运行”即可,编译完成运行后,可以看到打印了日志。


6.2、使用终端命令行(不建议)
打开 Vscode 菜单栏的 Terminal->new Terminal,编译 hello.c,生成可执行文件,然后运行,您可以看到屏幕上显示 “Hello World”。

到这里,你已经把第一个应用程序运行起来啦。
7、更好玩的程序参考
7.1、生成文本
#include <stdio.h>
#define FILENAME "./1.txt"
#define WRITEWORDS "These words are written in file.\n这是新加入的文件内容\n"
int main(){
FILE *fd = NULL; //文件描述符
size_t Nmemb = 1; //以单次写入某个长度的方式写入的个数
printf("run start");
fd = fopen(FILENAME, "a"); //打开一个名为FILENAME的文件,如果该文件夹没有则创建,权限为可读可写。
if(NULL == fd){ //判断是否打开成功
perror("open");
return -1;
}
fwrite(WRITEWORDS, sizeof(WRITEWORDS), Nmemb, fd); //往文件写入WRITEWORDS字符串,不覆盖原文内容
fclose(fd); //关闭文件
fd = NULL; //清空指针
printf("run end"); while(1);
}
7.2、生成图像
#include <stdio.h>
#include <stdlib.h>
#define w 200
#define h 200
void WriteBMP(char*img,const char* filename)
{
int l=(w*3+3)/4*4;
int bmi[]= {l*h+54,0,54,40,w,h,1|3*8<<16,0,l*h,0,0,100,0};
FILE *fp = fopen(filename,"wb");
fprintf(fp,"BM");
fwrite(&bmi,52,1,fp);
fwrite(img,1,l*h,fp);
fclose(fp);
}
int main()
{
char img[w*h*3];
for(int i=0; i<w*h*3; i++)img[i]=rand()%256;
WriteBMP(img,"test.bmp");
system("test.bmp");
return 0;
}
7.3、批量生成文本
#include <stdio.h>
#include <stdlib.h>
#define FILENAME_FORMAT "./file%d.txt"
#define WRITEWORDS "These words are written in file.\n这是新加入的文件内容\n"
int main(){
FILE *fd = NULL;
size_t Nmemb = 1;
for (int i = 1; i <= 100; i++) {
char filename[50];
sprintf(filename, FILENAME_FORMAT, i);
fd = fopen(filename, "a");
if (NULL == fd){
perror("open");
return -1;
}
fwrite(WRITEWORDS, sizeof(char), sizeof(WRITEWORDS) - 1, fd);
fclose(fd);
fd = NULL;
}
return 0;
}
每日一更!
公众号、优快云等博客:小鹅编程笔记
日更较慢有需要完整笔记请私我,C/C++/数据结构-算法/单片机51-STM32-GD32-ESP32/嵌入式/Linux操作系统/uboot/Linux内核-驱动-应用/硬件入门-PCB-layout/Python/后期小程序和机器学习!

被折叠的 条评论
为什么被折叠?



