C语言零基础入门级学习程序框架【系统学习第一天】

【1】 Hello World

配置部署好 vsCode 之后,就可以直接在上面写代码了,新建一个新的C程序文件,向屏幕输出一串字符 “Hello World!”,如下图所示:

在这里插入图片描述
下面,从整体上来分析一下这个最简单的C语言程序,将这个最简程序的各个部分剖析清楚,明白我们写下的每一个字符的具体含义。

【2】头文件的作用

#include <stdio.h>

C语言程序中,任何符号(包括变量和函数)的使用,都是需要提前声明的。 如果程序用到了系统库函数,那么就需要包含相应的系统头文件来进行声明。
上述代码中用到了库函数 printf,而这个函数的声明在头文件 stdio.h 中,因此在该程序中需要包含此头文件。

【3】声明的作用

概念:对源文件外定义的某个符号进行描述的过程,称为声明
作用:经过声明的符号,编译器才能正确识别和编译,否则编译器不认识,无法判定语法错误
符号:变量、函数等

示例:

// 声明一个变量符号number
int number = 100;

// 声明一个函数符号function
void function(int size, char *buf);

【4】mian主函数的作用

1.主函数是必须有的,每一个C语言程序都有main函数,哪怕是空的。
2.主函数的名字是固定的,叫 main ,这个函数名不可被挪作他用。
3.主函数是程序的入口,也就是程序开始运行的地方。

主函数分解如下:

// int: 返回值类型,代表主函数最终的执行结果是一个整型数据
// main(void): main是函数名,这个名字不能变
//             void是函数参数列表,可以省略
int main(void)
{
    
    
}

在 Linux 环境下,主函数 main 根据程序最终是否需要接收外部命令行参数,实际上有两个版本:

// 不接收外部命令行参数的版本
int main()
{
    
    
    ...
}

// 接收外部命令行参数的版本
int main(int argc, char **argv)
{
    
    
    ...
}

在初学阶段,可不必理会带外部参数的版本,等到学完数组和指针再回过来复习即可。

【5】printf函数

C语言被称为是一种面向过程的模块化语言,所谓的模块,值得是一个个功能明确、各司其职的封装函数,它们就像一块块积木,被合理有机地拼搭起来,形成复杂、健壮的程序。

在这之中,系统标准C库提供了非常多“模块”,printf 就是其中之一,它的功能就是:向终端输出一段指定格式的数据。

// 向终端输出一段字符串
printf("Hello World!\n");

格式输出控制符 概念:函数 printf
被称为格式化IO函数,因为它是按照指定格式来操作数据的。以常见的整数、浮点数和字符串为例,printf 函数相关的控制格式符如下所示:

// 格式化输出函数
printf(); 

// 根据需要输出不同格式的数据
printf("%d\n", 100);          // 输出1个整数
printf("%d, %d\n", 100, 200); // 输出2个整数

printf("%f\n", 3.14);         // 输出浮点数
printf("%c\n", 'x');          // 输出字符
printf("%s\n", "abcd");       // 输出字符串

printf("a=%d, %s\n", "abcd"); // 输出字符串

【6】格式控制符

语法点:
类似 %d、%f 被称为格式控制符
一个格式控制符对应一个数据
‘\n’ 是一个字符,表示回车符,详细 ASCII 码表参阅教案3。

格式控制符:
十进制整数:%d
八进制整数:%o
十六进制整数:%x
字符:%c
字符串:%s
单精度浮点数:%f
双精度浮点数:%lf
长双精度浮点数:%Lf
地址:%p

【7】 return语句

C语言中的关键字 return 的含义是结束一个函数,并返回某个数据(若有)。而具体到 main 函数中时,由于主函数 main 的结束同时也意味着整个程序的结束,因此在上述 Hello World 程序中 return 后整个程序就退出了。

int main()
{
    
    
    ... ...

    // 一般而言,函数正常退出返回0,非正常退出返回非0
    return 0;
}

一般而言,程序正常退出时,main函数返回值是0;当程序异常退出时,main函数返回值是非0。

注意: main函数的返回值是给上一级进程的,因此理论上讲在当前的单进程程序中,main函数的返回值究竟是多少都无所谓,因为根本没有去使用这个返回值,除非在多进程程序中,进程间才需要使用main函数的返回值来传递信息。

【8】 man帮助手册

编程开发的过程中,需要使用众多的系统指令、各类函数库、系统调用、各类系统脚本文件等,这些种类繁多、功能各异的信息,可以通过统一的man手册来获取第一手资料,man文档是帮助信息的权威通道,是大多数教程、书籍的知识来源。

由于 man 手册所需要罗列的帮助条目众多,因此 man 手册被妥善地分为9册,不同的帮助信息被放入对应的man分册中:

man文档的九个分册:

Shell命令(默认已安装)
系统调用
库函数
特殊文件(通常出现在/dev目录下)
文件的特殊格式或协定(例如/etc/passwd的格式)
游戏
杂项(例如一些宏定义)
系统管理员命令(通常只能由管理员执行)
非标准内核例程

【9】man手册的安装

在默认情况下,系统只安装第一册,其他的帮助信息一般需要用户自己手动安装,安装指令如下:

gec@ubuntu:~$ sudo apt install manpages
gec@ubuntu:~$ sudo apt install manpages-dev
gec@ubuntu:~$ sudo apt install manpages-posix
gec@ubuntu:~$ sudo apt install manpages-posix-dev

【10】man手册的查询

使用man手册查询命令、函数时,一般直接在man后面接上待查条目即可,但有时候会遇到同一个待查询的条目存在于多个man分册的情况,这就需要先罗列出该条目所在的分册信息,然后再根据需要去选择帮助文档的序号。

# 查询单一分册的条目:
gec@ubuntu:~$ man strcpy

# 查询存在于多个分册的条目:
# 先使用 -f 来查看有哪些分册包含了该条目
gec@ubuntu:~$ man -f printf
printf (1)           - format and print data
printf (3posix)      - print formatted output
# 根据需要,指定查询某一册帮助分册
gec@ubuntu:~$ man 3posix printf

注意:

按 q退出

【11】代码风格规范

缩进:凡是有代码块的地方都必须缩进,一对大括号 { } 代表一个代码块
空格:标点符号后面,一般加空格
空行:不同逻辑段落中间,一般加空行
符号命名:尽量能一望便知,做到顾名思义,避免使用无意义字符

// 示例代码
  #include <stdio.h>
  #include <stdlib.h>
  
  int maxValue(int a, int b)
  {
    
    
      return a>b ? a : b;
  }
  
  int main(void)
  {
    
    
      int a;
      int b;
      int m = maxValue(a, b);
      
      printf("最大值是: %d\n", m);
      return 0;
  }

【12】本章实例和问题解答[英文代码风格文档]

可以用DEV-C++、vc++、virtual studio等软件来写C语言程序吗?

答:可以。用什么IDE编辑编译C语言程序,理论上都是可以的,C语言的核心语法都是一样的,但由于嵌入式课程的核心技术之一是Linux,因此在Linux环境下编写C语言代码是最好的方式,推荐直接在Linux系统中写代码,或者在Windows 下安装带有Cygwin环境的 vsCode 都是可以的。

需要安装虚拟机吗?
答:可以,如果电脑硬件资源配置足够,安装虚拟机并在上面运行Linux系统直接进行C语言编程当然是可以的,在后续的嵌入式学习中,纯Linux的编程开发是必备的技能,只不过在初学C语言阶段,在电脑硬件配置不足的情形下,可以不必安装虚拟机的。

苹果电脑的vsCode怎么配置?
答:苹果电脑中的vsCode安装配置与windows的基本一样,要注意的是安装软件的格式不同,另外无需安装 cygwin。

英文代码风格链接:https://pan.baidu.com/s/1NEW6lM3BZhiG_NhL91qcNQ?pwd=s0lw
提取码:s0lw

每天不定时更新一个章节,按照先后顺序进行讲解,C语言是所有上层语言的鼻祖,正在学习这方面知识的小白,千万别错过了

【13】苹果笔记本安装VScode教程

官方网址

安装vscode,点击下载
在下载界面,找到对应系统的版本。
在这里插入图片描述

2.苹果系统本身已经自带了C和C++的编译环境,因此可以直接在文件夹中创建源码文件,编辑并编译运行。编译的时候,右键点击文件,在弹出的菜单中点击“在终端中打开”:
在这里插入图片描述

在终端中,直接敲命令编译程序:
// 编译并运行C语言代码:
gcc a.c
./a.out

// 编译并运行C++代码:
g++ a.cpp
./a.out  

在这里插入图片描述

【14】本章范例【vim快捷键】

第一题:使用 vsCode 编写一段代码,显示自己的学校和姓名。

//参考代码

#include <stdio.h>

int main()
{
    
    
    printf("齐鲁大学:张三疯\n");
    return 0;
}

第二题: 使用man手册查询系统调用fork函数的用法,并编写一个程序试试它的效果

解析
通过man手册查看fork函数的用法:

gec@ubuntu:~$ man fork

通过查阅代码,得知 fork
函数专用于创建一个新的进程,可以让原有的进程“分裂”成两个一模一样的进程,也就是有两个进程执行 fork
后续的代码。可以用下面的代码简单地验证这个结论:



参考代码

#include <stdio.h>

int main()
{
    
    
    fork();           // 将本进程分裂为两个进程
    printf("abcd\n"); // 该语句将被两个进程执行,打印两遍
    return 0;
}

(基本编程环境的使用、基本程序入门)
【1】安装并部署好 vsCode 编程环境,并安装 vim 插件,试试使用 vi 模式编写代码。

解析
直接在 vsCode 中的扩展栏搜索 vim 安装即可。关于 vi 编辑器:

特点: vi的改进版本叫vim(vi’s improved version),vi和vim是同一个软件。
vi其初衷是解放鼠标,只用键盘高效操作所有的编辑任务。 没有菜单,操作分成编辑模式和命令模式,除了编辑之外的操作都在命令模式下进行。

模式切换: 从命令模式 切换到 编辑模式:按i、o、a、I、O、A均可 从编辑模式 切换到 命令模式:按Esc。

在编辑模式中,vi 就跟普通的编辑器一样
在命令模式中,可以输入如下命令操作文本:

在这里插入图片描述
在这里插入图片描述

(基本程序入门,帮助信息查询)
【2】通过查询本地man手册,或者在线帮助文档,了解格式控制输出函数的用法,编写程序实现:

输出123.456,并保留1位小数
输出十进制数100的十六进制形式,并附上十六进制数的前缀(即0x)
//参考代码:
#include <stdio.h>

int main()
{
    
    
    printf("%.1f\n", 123.456);
    printf("%#x\n", 100);

    return 0;
}

【15】C语言在线帮助文档[离线版也有]

在这里拥有丰富的C语言资源,不管是小白还是大佬,都应该拥有

C语言在线帮助文档

坚持间断性更新,直至所有课件讲完,第一天结束=

猜你喜欢

转载自blog.csdn.net/m0_45463480/article/details/124742073