首页 > 其他分享 >CDay01

CDay01

时间:2023-02-01 09:34:10浏览次数:32  
标签:文件 头文件 函数 程序 CDay01 main 预处理

学习认知

  1. 学习的过程本身就是痛苦的,但是学会之后会获得一种持久的快乐。
  2. 习惯可以减轻学习中的痛苦。
  3. 英语很重要,基础知识很重要。

C语言特性

  • C语言和汇编语言之间有很强的对应关系。
  • C语言可以直接操作硬件,运行时效率非常高(不会检查数组是否越界,也没有异常捕获机制)。

VS基本操作

创建新项目->空项目->配置新项目
解决方案:用来管理多个项目

项目1:

  • 头文件:* .h
  • 源文件:* .c、* .cpp
  • 资源文件:文本、图片、视频、配置文件...

项目2:

头文件、源文件、资源文件


常见的三大问题:

Compiler:语法问题(C开头的错误)

Link:链接错误(L开头的错误)

  1. 没有包含对应的头文件
  2. 函数名称写错
  3. 在函数定义前调用了该函数

Runtime:逻辑问题


调试界面:

image.png
调试程序,关键操作:打断点(经验积累)

  • 启动调试:F5
  • 逐语句调试:F11
  • 逐过程调试:F10
  • 继续:运行到逻辑上的下一个断点

内存相关

  1. 内存的最小单位:位(bit)
  2. 寻址的最小单位:字节(Byte)----8bit

多字节数据如何存储?

  1. 大端表示法,高地址存放低有效位
  2. 小端表示法,低地址存放低有效位

例:

int i = 255;		//0x000000FF			

大端表示法存储:

小端表示法存储:

内存的大小单位

bit: b

byte: 8 bits

KB: 2^10 byte

MB: 2^20 byte

GB: 2^30 byte

HelloWorld

#incldue<stdio>			//预处理指令:头文件包含

int main(void){			//int是返回值类型,void是参数类型,此处表示没有参数
	printf("Hello World!\n");
	return 0;
}

main函数是程序的入口,操作系统会从main函数开始执行程序。

main函数的返回值是程序的状态码,表示程序终止的状态:

  • 0:表示程序正常终止
  • 非0:表示程序异常终止

程序是如何生成的

程序:可执行的二进制文件(静态)

进程:运行的程序(动态)

程序生成过程就是将源代码(文本文件)转换成程序(二进制文件)。

预处理

项目->属性->C/C++->预处理器->预处理到文件

可以查看预处理后的 .i 文件

预处理指令:以#开头

#include 		//头文件包含

原理:将头文件中的内容copy到预处理指令所在的位置

#define N 5		//宏定义

原理:文本替换

#define Func(x) 1+x*x		//带参数的宏(宏函数)

使用宏函数时的注意事项:

  • 左括号要紧贴宏函数的名称
  • 把整个宏函数的表达式用括号括起来
  • 把参数用括号括起来
  • 警惕参数导致的多次副作用

宏函数比起普通函数有什么好处?

答:宏函数主要优于普通函数的地方就是其运行速度比普通函数快。当有些简单函数需要重复调用时,宏函数的优势体现更为明显,因为普通函数的调用需要更多的额外开销,而宏函数则只是简单的文本替换,不需要额外开销,其速度显然会更快。

编译

把源代码翻译成汇编代码

汇编

把汇编代码翻译成对应平台的机器代码(目标代码)

链接

把目标文件和库文件(注意不是头文件,是目标文件的集合)以及OS的引导代码链接在一起生成可执行文件

小结

标签:文件,头文件,函数,程序,CDay01,main,预处理
From: https://www.cnblogs.com/MyXjil/p/17081456.html

相关文章