avatar

重学c语言(持续更新)

头文件

include include代表将文件拷贝过来当作文本文件解析
include <>代表系统目录下查找文件
include”stdlib.h” “”代表先在当前目录查找 若当前目录没有则去系统目录查找

return之后的语句不会执行

C语言程序结构

同步执行: 后面的语句要等当前退出。
异步执行: 不等待退出可以执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>

int main()
{
char str[100] = { 0 };
// printf("Please input your instructions\n");
// scanf("%s", str);
// printf("The instructions you are going to execute %s", str);
// system(str);

system("start notepad"); // 后面的语句要等当前退出。
system("start notepad"); // 加上start后,不等待退出可以执行。
Sleep(5000);
system("taskkill /f /im notepad.exe");
system("pause");
return 0;
}
1
2
3
4
5
6
7
#include<stdlib.h>

void main()
{
system("notepad");
main() // 递归main 死循环
}

预处理

预处理优先于编译,又叫预编译

  1. 预处理指令 例如 包含头文件
  2. 全局声明
  3. 函数定义

编译 链接

编辑源代码: 代码在.c和.h文件中写好了以后,编译成.obj
编译源文件: 代码被编译成二进制文件.obj后,打包一些调用的库,
链接生成应用程序:链接成.exe可执行文件,从obj链接成exe,如果调试出现问题。返回原代码编辑

gcc命令行操作

1
2
3
gcc -E  预编译
gcc -s 转汇编
gcc -c 编译

数据结构&算法

数据结构: 二叉树,队列,栈,红黑树,链表等等
算法: 快速排序算法,冒泡排序算法,选择排序算法等等

内存

1
2
3
4
5
6
7
8
#include<stdio.h>

void main()
{
int a = 10; // 10放在代码区的符号表,然后在寄存器产生
printf("%p",&a);
getchar();
}

c语言嵌入汇编

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>

void main()
{
int a;
printf("%p",&a);

_asm
{
mov eax, 10
mov a, eax
}

getchar();
}

变量赋值都是通过cpu的寄存器实现

数组

c语言的基本数据类型: 整型,浮点型,字符型。 然后就是复合数据类型。(数组,结构体,公用体)

1
2
3
4
5
int main(void)
{
int a[4];
a[0] = 1;
}

指针

文章作者: gh
文章链接: https://ghclub.top/posts/18555/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GHBlog
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论