20
2019
10

《c陷阱与缺陷》笔记

1.在c语言中,符号之间的空白(包括空格符,制表符或换行符)将被忽略if(x>big) big=x;还可以写出:if(x>big) big=x;2.编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号如:y=x/*p    
15
2019
10

feof 函数

函数概要:feof 函数用于检测文件的末尾指示器(end-of-file indicator)是否被设置。函数原型:#include <stdio.h>...int feof(FILE *stream);参数解析:参数含义stream该参数是一个 FILE 对象的指针,指定一个待检测的文件流返回值:1. 如果检测到末尾指示器(end-of-file indicator)被设置,返回一个非 0 值;2. 如果检测不到末尾指示器(end-of-file indicator)被设置,返回值
15
2019
10

C语言函数快查

https://fishc.com.cn/thread-66397-1-1.html转自小甲鱼~~~
28
2019
09

失传的 C 结构体打包技艺

转自:https://github.com/ludx/The-Lost-Art-of-C-Structure-Packing作者:Eric S. Raymond原文链接:http://www.catb.org/esr/structure-packing谁应阅读本文本文探讨如何通过手工重新打包 C 结构体声明,来减小内存空间占用。你需要掌握基本的 C 语言知识,以理解本文所讲述的内容。如果你在内存容量受限的嵌入式系统中写程序,或者编写操作系统内核代码,就有必要了解这项技术。如果数据集巨大,应用时常
28
2019
09

编译器的工作流程

众所周知,在 CPU 的眼里只有 1 和 0,虽然简单,但它们却构造出了世界上人类最难理解的语言 —— 机器语言。因此,想要让计算机运行你的代码,你必须将你的源代码“翻译”成 CPU 认识的语言才行。下边小甲鱼以 GCC 为例,尝试给大家讲下编译器的工作流程!要将 C 语言翻译成机器语言,简单来说需要两个步骤:编译 -> 链接对于 GCC 来说,执行 gcc test.c 命令,其实相当于依次执行下面四个步骤:预处理(Pre-Processing)-- 对 C 语言进行预处理,生成 tes
25
2019
09

四级口语

四级听力的特点比如:
15
2019
09

c语言运算符的优先级

14
2019
09

strncpy函数

 char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。返回值:该函数返回最终复制的字符串。把str1中5个字符复制给str2,但是str2不会自己加个\0,所以一定要给str2加个结束符注意:strncat和strncmp中的n类似的意思
14
2019
09

memset函数

定义变量时一定要进行初始化,尤其是数组和结构体这种占用内存大的数据结构。在使用数组的时候经常因为没有初始化而产生“烫烫烫烫烫烫”这样的野值,俗称“乱码”。memset() 函数可以说是初始化内存的“万能函数”,通常为新申请的内存进行初始化工作,memset() 的作用是在一段内存块中填充某个给定的值。因为它只能填充一个值,所以该函数的初始化为原始初始化,无法将变量初始化为程序中需要的数据。用memset初始化完后,后面程序中再向该内存空间中存放需要的数据。该函数的原型为:# include &l
14
2019
09

fgets函数

fgets() 的原型为:# include <stdio.h>char *fgets(char *s, int size, FILE *stream);fgets函数最多可以读取size-1个字符,因为结尾处会自动添加一个字符串结束符“\0"。当读取到换行符或者文件结束符(EOF)时,表示结束读取它的功能是从 stream 流中读取 size 个字符存储到字符指针变量 s 所指向的内存空间。它的返回值是一个指针,指向字符串中第一个字符的地址。返回值:返回值:1. 如果函数