上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 56 下一页

2022年5月6日

摘要: C语言预处理命令是什么? C语言#include的用法详解(文件包含命令) C语言宏定义 C语言带参数宏定义 C语言带参宏定义和函数的区别 C语言宏参数的字符串化和宏参数的连接 C语言中几个预定义宏 C语言条件编译详解 C语言#error命令,阻止程序编译 C语言预处理指令总结 阅读全文
posted @ 2022-05-06 09:04 朴素贝叶斯 阅读(88) 评论(0) 推荐(0) 编辑

2022年5月4日

摘要: 学习完C语言的基本课程,很多老师都会布置一个大作业,让同学们编写出学生信息管理系统。学生信息管理系统可以用来管理班级学生,对学生信息(包括姓名、性别、年龄、成绩等)进行增加、删除、更改、查询等操作。 该系统主要有两种实现方案: 第一种将学生信息直接保存在二进制文件中,当需要查询或者更新时,要能够使用 阅读全文
posted @ 2022-05-04 21:43 朴素贝叶斯 阅读(1320) 评论(0) 推荐(1) 编辑
摘要: 我们知道,全局变量和函数的作用域默认是整个程序,也就是所有的源文件,这给程序的模块化开发带来了很大方便,让我们能够在模块 A 中调用模块 B 中定义的变量和函数,而不用把所有的代码都集中到一个模块。 但这有时候也会引发命名冲突的问题,例如在 a.c 中定义了一个变量 n,在 b.c 中又定义了一次, 阅读全文
posted @ 2022-05-04 20:42 朴素贝叶斯 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 头文件包含命令#include的效果与直接复制粘贴头文件内容的效果是一样的,预处理器实际上也是这样做的,它会读取头文件的内容,然后输出到 #include 命令所在的位置。 头文件包含是一个递归(循环)的过程,如果被包含的头文件中还包含了其他的头文件,预处理器会继续将它们也包含进来;这个过程会一直持 阅读全文
posted @ 2022-05-04 18:21 朴素贝叶斯 阅读(887) 评论(0) 推荐(1) 编辑
摘要: 我们常说, 引入编译器自带的头文件(包括标准头文件)用尖括号, 引入程序自定义的头文件用双引号, 例如: #include <stdio.h> //引入标准头文件 #include "myFile.h" //引入自定义的头文件 使用尖括号< >,编译器会到系统路径下查找头文件; 而使用双引号" ", 阅读全文
posted @ 2022-05-04 17:03 朴素贝叶斯 阅读(5060) 评论(0) 推荐(1) 编辑
摘要: 源文件通过编译可以生成目标文件(例如 GCC 下的 .o 和 Visual Studio 下的 .obj),并提供一个头文件向外暴露接口,除了保护版权,还可以将散乱的文件打包,便于发布和使用。 实际上我们一般不直接向用户提供目标文件,而是将多个相关的目标文件打包成一个静态链接库(Static Lin 阅读全文
posted @ 2022-05-04 16:35 朴素贝叶斯 阅读(778) 评论(0) 推荐(0) 编辑
摘要: 前面我们在演示多文件编程时创建了 main.c 和 module.c 两个源文件,并在 module.c 中定义了一个函数和一个全局变量,然后在 main.c 中进行了声明。 不过实际开发中很少这样做, 一般是将函数和变量的声明放到头文件, 再在当前源文件中 #include 进来。 如果变量的值是 阅读全文
posted @ 2022-05-04 16:09 朴素贝叶斯 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 所谓引用(Reference),是指对符号的使用。在下面的代码中: int a = 100, b = 200, c; c = a + b; 第一行是符号定义,第二行是符号引用。 目前我们所看到的符号引用,在所有目标文件被链接成可执行文件时,它们的地址都要被找到,如果没有符号定义,链接器就会报符号未定 阅读全文
posted @ 2022-05-04 15:10 朴素贝叶斯 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 我们在编写代码的过程中经常会遇到一种叫做符号重复定义(Multiple Definition)的错误,这是因为在多个源文件中定义了名字相同的全局变量,并且都将它们初始化了。 例如,在 a.c 中定义了全局变量 global: int global = 10; 在 b.c 中又对 global 进行了 阅读全文
posted @ 2022-05-04 14:38 朴素贝叶斯 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 链接(Linking)就是通过符号将各个模块组合成一个独立的程序的过程。 链接的主要内容就是把各个模块之间的相互引用部分处理好,使得各个模块能够正确地衔接。 链接器所做的主要工作跟前面提到的“人工调整地址”本质上没有什么两样,只不过现代的高级语言拥有诸多的特性,使得编译器和链接器更为复杂,功能更为强 阅读全文
posted @ 2022-05-04 09:19 朴素贝叶斯 阅读(487) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 56 下一页

导航