C语言基础(一)C语言介绍

01.使用C语言的理由

1.1 语法相对易懂 (想对他之前语言)

1.2应用范围比较广泛

1.3可移植性

1.4更强的操作性

02.C语言的应用领域

2.1 操作系统

2.2 编译器

2.3 游戏

2.4 嵌入式/物联网

2.5 桌面程序

....

03.C语言标准

1978年 K&R标准

1989年 C89/C90

1999年 C99

2011年 C11

04.C语言的使用步骤(理论)

4.1 确定需求

4.2 设计程序

4.3 编写程序

4.4 编译链接

4.5 运行

4.6 测试和调试

4.7 维护和修改 

05.集成开发环境(IDE)与编译器

IDE:

VS2017

CLION

Dev++

C++ Builder

编译器:

GOC

MSVG

G++

06.编译的步骤

6.1笼统的生成过程

编写源代码 name.c(源文件)

#include <stdio.h>

int main()

{

    printf("hello world\r\n");

    return 0;

}

编译器编译c语言源文件生成二进制中间文件name.obj(预处理/编译/汇编)

连接器从obj文件中抽取相应的代码及必要数据生成当前操作系统可执行的文件name.exe

运行

6.2 真正生成的四个步骤(kail系统下)

6.2.1 预处理 

sudo(管理员运行) gcc(编译器)-E (指令)处理hello.c(文件)将生产的结果 -o (指定)为 hello.i(文件)(复制头文件内容,替换宏的内容等预处理相关指令)

6.2.2 编译

sudo gcc -S hello.i -o hello.s将c语言代码编译成汇编代码

6.2.3 汇编

sudo gcc -c hello.s -o hello.o将汇编代码汇编成二进制

6.2.4 链接 

sudo gcc hello.o -o hello 最终链接 加载启动代码和库文件

 07.进制和位

07.1进制

2: 0 1 10

8: 0 1 2 3 4 5 6 7 10

10: 0 1 2 3 4 5 6 7 8 9 10

16: 0  1 2 3 4 5 6 7 8 9  A B C D E F  

07.2 位(二进制的一个位)

操作系统 x86 x64

符号位:最高位0/1表示正/负

QWORD 64位

FWORD 48位

DWORD 32位

WORD 16位

BYTE 8位

BIT 1位

运营商所说兆率是以bit为单位,在实际下载中,速度以byte为单位

08 VS和Clion的常规使用

VS:

F5 运行

F9 断点

F10 单步步过 跳过函数内部

F11 单步步入 进入函数内部

Clion:  

shift + F9 debug 调试

shift + F10 run 运行

F7 步入

F8 步过

作业补充知识

一:什么是可移植性

在计算机领域,可移植性(portability)是指软件的能力,在不同的计算机系统、操作系统或硬件平台上运行。

C 语言是一种通用的、高级的编程语言,可以被编译成机器语言,在不同的计算机系统上运行

二:编译器与连接器的作用

编译器:编译c语言源文件生成二进制中间文件,后缀.obj

连接器:从obj文件中抽取相应的代码及必要数据生成当前操作系统可执行的文件,后缀.exe(windows默认)

三:什么是语法错误,什么是语义错误,区别是什么。

语义错误:
1、别称:逻辑错误;
2、表现形式:在编译阶段不会发现错误,往往是运行结果错误;代码的逻辑有问题,但是编译一般会运行正常。

语法错误:
1、语法错误在编程环境下,在编译期会被发现;
2、在编程语言中,语法错误一定只在编译期时出现,编译器所有语法都正确,才能够正确编译;例如编写代码时,少了一个括号就相当于一个语法错误。

四:静态编译和动态编译应该如何配置,区别是什么

动态编译: 动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。 

静态编译:编译器在编译可执行文件时,把需要用到的对应动态链接库(.so或.ilb)中的部分提取出来,链接到可执行文件中去,

区别:
静态库源代码修改后,静态库需要重新编译,程序也要重新编译。
动态库源代码修改后,只需要编译动态库文件即可,程序不需要重新编译。
如果在动态库文件和静态库文件同时存在,优先使用动态库编译。

五:Main函数的意义与头文件的意义

一.头文件的使用

1.头文件一般就是.h结尾的文件

2.一般自己写的头文件就用" "引用,如果是系统提供的头文件就用< >引用。

3.何时使用:我们平时写C语言代码,如果我们在调用一个函数时,必须将函数的定义写在调用函数之前,否则会报错。

#include <stdio.h>:包含头文件 (写在第一行)

#表预处理命令

<>表示,从编译器默认的路径(环境变量)中去找文件stdio.h

<>内资源库为 官方的资源库(文件)

""只找当前目录是否含有该库

""内的为第三方资源库

二.int main()

{

    return 0;

}

代码从main()开始

return 0:让main函数返回值,该值为此进程的返回值,此时结束程序

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值