- 博客(17)
- 收藏
- 关注
原创 c语言预处理(预定义符、宏、条件编译、文件包含)
c语言为我们提供了一些预定义符号,让我们可以快速的实现某种功能,如输出文件当前被编译的时间、日期等。__FILE____LINE____DATE____TIME____STDC__//进行编译的源文件 %s//文件当前的行号 %d//文件被编译的日期 %s//文件被编译的时间 %s//如果编译器遵循ANSI C,其值为1,否则未定义 %d//当前执行的函数 %s这些预定义符号存储了一些信息,我们可以用相应格式输出出来。
2023-04-10 20:58:15
901
原创 含格式标识符宏的封装
对于一些函数,如printf(),我们可能用到%d、%s等格式标识符,如果定义一个宏,想要实现打印两种自由指定元素组成的字符串时,就要将格式标识符作为参数传过去,而在宏中,宏的参数在printf()的字符串参数中会被视为字符串的一部分。具体的操作方法可以是不直接以标识符作为参数而是以标识符为内容的字符串为参数,利用其自动合并的特性达到目的。注:宏的参数不要连着写("生成:"XY),不然会报错,可以穿插""空字符串。那么利用#的特性,参数就可以直接写为%d、%s而不用转换为字符串。②利用操作符#和##
2023-04-08 23:12:26
191
原创 c语言文件操作
当本段代码执行,因为没有文件名为“test.txt”的文件,所以以“r”只读的形式打开文件就会出错,函数会返回空指针NULL,此时若是对空指针进行解引用操作程序就会崩溃,影响程序的安全性。每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者不必关心细节。程序和文件,屏幕等各种终端设备的数据传输是极为复杂的,因此为了便于理解,便将数据传输的通道抽象为流这种具有动态属性的词,我们可以说各个模块间的传输都是通过流来实现的。通过该文件信息区中的信息就能够访问该文件。
2023-04-01 21:13:48
481
2
原创 【整数的二进制表示】原码,反码,补码
众所周知,整数在内存中存储的是 补码 。在涉及到对二进制位进行操作的程序时,清楚“三码”的关系和转换方式是非常重要的。
2023-02-07 15:31:07
1097
原创 青蛙跳台阶问题研究
问题:青蛙每次只能跳一层或两层,问跳到n层台阶的方法有几种?实验与分析:我们先来做几次实验,首先我们分别列举台阶为1层和两层的情况:一层时:当前只开放了一层台阶,因此青蛙只能选择跳一次二层时:此时开放了两层台阶,青蛙多了一次跳两阶的选择目前我们掌握了可以从地面到达一、二层的全部情况再来看第三层:为了方便理解,我将可能分成了两部分此时我们可以看到,1部分的起点在二层,都是通过跳一阶到达三层的,2部分的起点则在一层,开放了第三层台阶青蛙就可以通过跳两阶到达三
2023-01-08 22:33:15
91
空空如也
语法正确,但出现了“无法解析外部符号”的错误
2023-01-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人