源文件hello.c
预处理 hello.i(预处理文件)
编译 hello.s(汇编文件)
汇编 hello.o(目标文件)
链接 hello.exe(可执行文件)
参数:-E
生成的文件: xxx.i预处理文件
使用命令:gcc-E xxx.c -o xxx.i
工具:预处理器(包含在gcc编译集合工具中)
完成的工作:
头文件展开。
宏定义的替换。
替换注释。
展开条件编译。
根据条件展开代码
#include<stdio.h>
#define PI 3.14
int main()
{
//展开条件编译。
#ifdef PI
printf("5555\n");
#endif
}
参数:-S
生成的文件: xxx.s预处理文件
使用命令:gcc -S xxx.i -o xxx.s
工具:编译器(包含在gcc编译集合工具中)
完成的工作:
参数:-c
生成的文件: xxx.o 目标文件(二进制)
使用命令:gcc -c xxx.s -o xxx.o
工具:汇编器(包含在gcc编译集合工具中)
完成的工作:
参数:无(-o不是链接阶段参数,是用来指定文件名)
生成的文件: xxx.exe 可执行文件(二进制)
使用命令:gcc -c xxx.o -o xxx.exe
工具:链接器(包含在gcc编译集合工具中)
完成的工作:
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x,X 以十六进制形式输出无符号整数(不输出前缀Ox)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e,E 以指数形式输出单、双精度实数
g,G 以%f或%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
前提:程序,没有语法问题。
核心思想:
VS添加行号:
程序调试流程:
添加断点:可以添加多个。
调试,必须在Debug模式下。Release模式无效。
F5启动调试。
断点停止位置还未执行代码
开始调试
定义语法:类型名 变量名 = 变量值(一般定义法)(int m=666)
会开辟内存空间给变量。变量声明不会开辟内存空间。
语法:
特性:
变量和常量的总称
有符号整型:
整型名 | 名称 | 格式匹配符 | 占用的大小 | 最小值 | 最大值 |
---|---|---|---|---|---|
int | 整型 | %d | 4字节 | -2147483648 | 2147483647 |
short | 短整型 | %hd | 2字节 | -65536 | 65535 |
long | 长整型 | %ld | Windows:32/64位 :4字节 Linux:32位:4字节 64位:8字节 | -2147483648 | 2147483647 |
long long | 长长整型 | %lld | 8字节 | -9223372036854775808 | 9223372036854775807 |
无符号类型:
整型名 | 名称 | 格式匹配符 | 占用的大小 | 最小值 | 最大值 |
---|---|---|---|---|---|
unsigned int | 无符号整型 | %d | 4字节 | 2147483647*2+1 | |
unsigned short | 无符号短整型 | %hd | 2字节 | 0 | 65535*2+1 |
unsigned long | 无符号长整型 | %ld | Windows:32/64位 :4字节 Linux:32位:4字节 64位:8字节 | 0 | 2147483647*2+1 |
unsigned long long | 无符号长长整型 | %lld | 8字节 | 0 | 9223372036854775807*2+1 |
原文:https://www.cnblogs.com/CNLLB/p/12548703.html