![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
文章平均质量分 78
yangtuoni
这个作者很懒,什么都没留下…
展开
-
C语言头文件
在 Linux 下使用 GCC 来编译,使用最简单的$gcc demo.c命令,就可以在当前目录下看到 a.out。事实上,从源代码生成可执行文件可以分为四个步骤,分别是预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。下图是 GCC 生成 a.out 的过程:...原创 2021-07-21 23:47:42 · 146 阅读 · 1 评论 -
C语言内存
对于全局变量,GCC在 Debug 和 Release 模式下都会进行内存对齐,而VS只有在 Release 模式下才会进行对齐。而对于局部变量,GCC和VS都不会进行对齐,不管是Debug模式还是Release模式。现代计算机都使用分页(Paging)的方式对虚拟地址空间和物理地址空间进行分割和映射,以减小换入换出的粒度,提高程序运行效率。分页(Paging)的思想是指把地址空间人为地分成大小相等(并且固定)的若干份,这样的一份称为一页,就像一本书由很多页面组成,每个页面的大小相等。如此,就能够以页为原创 2021-07-21 18:09:41 · 54 阅读 · 0 评论 -
C语言文件
常见硬件设备所对应的文件文件硬件设备stdin标准输入文件,一般指键盘;scanf()、getchar() 等函数默认从 stdin 获取输入。stdout标准输出文件,一般指显示器;printf()、putchar() 等函数默认向 stdout 输出数据。stderr标准错误文件,一般指显示器;perror() 等函数默认向 stderr 输出数据(后续会讲到)。stdprn标准打印文件,一般指打印机。文件是数据源的一种,除了文件,还有数据库、网络原创 2021-07-12 20:11:45 · 86 阅读 · 0 评论 -
C语言typedef,const和随机数
typedef#include <stdio.h>typedef char (*PTR_TO_ARR)[30];typedef int (*PTR_TO_FUNC)(int, int);int max(int a, int b){ return a>b ? a : b;}char str[3][30] = { "http://c.biancheng.net", "C语言中文网", "C-Language"};int main(){ P原创 2021-07-12 16:39:52 · 186 阅读 · 0 评论 -
C语言结构体
像 int、float、char等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体,我们将它称为复杂数据类型或构造数据类型。include <stdio.h>int main(){ struct{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 .原创 2021-07-12 16:01:08 · 262 阅读 · 0 评论 -
C语言指针(二)
include <stdio.h>int main(){ int a[6] = {0, 1, 2, 3, 4, 5}; int *p = a; int len_a = sizeof(a) / sizeof(int); int len_p = sizeof(p) / sizeof(int); printf("len_a = %d, len_p = %d\n", len_a, len_p); return 0;}运行结果:len_a = 6,原创 2021-07-10 19:05:25 · 283 阅读 · 0 评论 -
C语言指针(一)
我们将内存中字节的编号称为地址(Address)或指针(Pointer)。地址从 0 开始依次增加,对于 32位环境,程序能够使用的内存为 4GB,最小的地址为 0,最大的地址为 0XFFFFFFFF。CPU访问内存时需要的是地址,而不是变量名和函数名!变量名和函数名只是地址的一种助记符,当源文件被编译和链接成可执行程序后,它们都会被替换成地址。编译和链接过程的一项重要任务就是找到这些名称所对应的地址。变量名表示的是数据本身,而函数名、字符串名和数组名表示的是代码块或数据块的首地址。int a .原创 2021-07-09 17:56:10 · 120 阅读 · 0 评论