- 博客(4)
- 收藏
- 关注
原创 c语言编译过程
绪论 我们在各自的电脑上写下代码,得明白我们代码究竟是如何产生的,不想了解1,0什么的,但这几个环节必须掌握吧。 我们的代码会经过这4个环节,从而形成最终文件,c语言作为编译语言,用来向计算机发出指令。让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 预处理, 展开头文件/宏替换/去掉注释/条件编译 gcc test.c -E test.i 编译, 检查语法,生成汇编 gcc test.i -S test.s 汇编, 汇编代码转换机器码 gcc test.s
2020-11-10 15:44:35
443
1
原创 关于c内存分布关系和不同代码存放位置
转载:cnblogs.com/liantang-blog/p/13715537.html https://blog.youkuaiyun.com/czg13548930186/article/details/54882907 关于c内存分布图 这是Linux下32位环境的用户空间内存分布情况 内核空间: 一部分核心软件独立于普通应用程序,运行在较高的特权级别上,驻留在被保护的内存空间上,拥有访问硬件设备的所有权限。 内存栈区: 存放函数的参数值,局部变量的值等,在程序运行时由编译器自动分配。 内存堆区: 存放new或
2020-11-10 13:27:05
237
原创 关于const和#define的区别
一、#define和const两者的区别: 1、就起作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在编译、运行的时候起作用 。 2、就起作用的方式而言: const常量有数据类型,而#define宏常量没有数据类型。编译器可以对const进行类型安全检查。而对#define只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。 3、就存储方式而言:#define只是进行展开,有多少地方使用,就替换多少次,它定义的宏常量在内存中有若干个备份,占用代码段空间;co
2020-11-10 11:52:35
332
原创 linux下alarm函数基本用法
#1、alarm函数 (1) 头文件:#include <unistd.h>; (2)函数原型:unsigned int alarm(unsigned int seconds); (3)功能与作用:alarm()函数的主要功能是设置信号传送闹钟,即用来设置信号SIGALRM在经过参数seconds秒数后发送给目前的进程。如果未设置信号SIGALARM的处理函数,那么alarm()默认处理终止进程。 (4)函数返回值:如果在sec秒内再次调用了alarm函数设置了新的闹钟,则后面定时器的设置将覆盖
2020-09-07 20:28:24
2826
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人