
C
文章平均质量分 76
Joker......
这个作者很懒,什么都没留下…
展开
-
1.1 Linux中的文件
1.1.1 文件、文件描述符和文件表Linux内核将一切视为文件,那么Linux的文件是什么呢?其既可以是事实上的真正的物理文件,也可以是设备、管道,甚至还可以是一块内存。狭义的文件是指文件系统中的物理文件,而广义的文件则可以是Linux管理的所有对象。这些广义的文件利用VFS机制,以文件系统的形式挂载在Linux内中,对外提供一致的文件操作接口。从数值上看,文件描述符是一个非负整数,其本质就是一个句柄,所以也可以认为文件描述符就是一个文件句柄。那么何为句柄呢?一切对于用户透明的原创 2022-02-26 17:31:00 · 573 阅读 · 0 评论 -
C语言那些关键字
Static关键字 static 的作用是什么?这个简单的问题很少有人能回答完全。在 C 语言中,关键字 static 有三个明显的作用:在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 在模块内(函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。大多数应试者能正确回答第一部分,一部分能正.原创 2022-02-26 15:34:26 · 112 阅读 · 0 评论 -
C语言内存问题
当今的许多 C程序员可能都会认为内存错误是不可控制而又神秘的顽症,它们只能纠正,无法预防。本文将让您在短时间内理解与良好内存相关的编码的所有本质:正确的内存管理的重要性 内存错误的类别 内存编程的策略 正确的内存管理的重要性存在内存错误的 C 程序会导致各种问题。如果它们泄漏内存,则运行速度会逐渐变慢,并最终停止运行;如果覆盖内存,则会变得非常脆弱,很容易受到恶意用户的攻击。与内存相关的编程是如此重要,而在实践中正确应用又是如此困难,以致于它支配着面向对象编程语言、功能性编程语言、高级编原创 2022-02-26 12:48:56 · 549 阅读 · 0 评论 -
C语言中文件输入输出函数
文件的输入输出函数键盘、显示器、打印机、磁盘驱动器等逻辑设备,其输入输出都可以通过文件管理的方法来完成。而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 详细介绍 Turbo C2.0 提供的文件操作函数, 当然这些对文件的操作函数也适合于非磁盘文件的情况。另外, Turbo C2.0 提供了两类关于文件的函数。一类称做标准文件函数也称缓冲型文件函数, 这是 ANSI标准定义的函数;另一类叫非标准文件函数, 也称非缓冲型文件函数。这类函数最早公用于 UNIX 操作系统,但现在.原创 2022-02-25 20:43:06 · 905 阅读 · 0 评论 -
C语言宏定义学习
1 防止一个头文件重复定义格式如下#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif这个在很多的头文件的开头都有看到,就是弄不明白,什么叫重复定义???试个程序看看•例题 1 test1.c#include <stdio.h>int main(int argc,char *argv[]){ printf("lsdkfla\n");}•例题 2 test2.c#include <stdio.h&...原创 2022-02-25 14:10:33 · 527 阅读 · 0 评论 -
C语言高效编程方式
C语言高效编程的几招第1招:以空间换时间计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第 1 招–以空间换时间。例如:字符串的赋值。方法 A,通常的办法:#define LEN 32char string1 [LEN];memset (string1,0,LEN);strcpy (string1,”This is an example!”);方法 B:const char string2[LEN]=”.原创 2022-02-25 11:50:02 · 220 阅读 · 0 评论 -
C语言 自己制作动态链接库并使用
(1)动态链接库的后缀名是.so(对应windows系统中的dll),静态库的扩展名是.a(2)第一步:创建一个动态链接库。 gcc aston.c -o aston.o -c -fPIC gcc -o libaston.so aston.o -shared-fPIC是位置无关码,-shared是按照共享库的方式来链接注意:做库的人给用库的人发布库是,发布libxxx.so和xxx.h即可。(3)第二步使用自己创建的共享库gcc test.c -o...原创 2021-12-24 18:29:33 · 2399 阅读 · 0 评论 -
C语言 自己制作静态库并使用
(1)第一步:自己制作静态链接库并使用 首先使用gcc -c只编译不连接,生成.o文件:然后使用ar工具进行打包成.a归档文件库名不能随便乱取,一般是lib+库名称,后缀名是.a表示是一个归档文件。(2)第二步:使用静态链接库 把.a和.h放在我引用的文件夹下,然后再.c文件中包含库的.h,然后直接使用库函数编译方法:gcc test.c -o test -laston -L.(3)除了ar名另外,还有个nm命令也很有用,它可以用来查看一个.a文件中都有哪...原创 2021-12-24 17:23:04 · 1242 阅读 · 0 评论 -
C语言 文件操作
一、文本数据和二进制数据1、文本数据文本数据由字符串组成,存放了每个字符的 ASCII 码值,每个字符占一个字节,每个字节存放一个字符。例如数字 123,如果用文本格式存放,数据内容是'1'、'2'、'3' 三个字符,占三个字节,如下表所示。1、二进制数据二进制数据是字节序列,数字123的二进制表示是01111011,如果用二进制格式形式存储,字符、短整型、短整型、长整型都可以存储123,存储方式分别如下:1)字符型一个字节011110112)短整型2个字节0原创 2021-12-23 19:37:09 · 543 阅读 · 0 评论 -
C语言 大小端模式
1、什么是大小端模式?为什么要出现大小端?大小端来源于小说后来计算机通信发展起来后,遇到一个问题就是:在串口等串行通信中,一次只能发送一个字节。这时候我要发送一个int类型的数就遇到一个问题。int类型有4个字节,我按照:byte0,byte1,byte2,byte3这样的顺序发送,还是按照反过来。规则就是发送方和接收方必须按照同样的字节顺序来通信,否则就会出现错误。这种通信系统中的大小端...原创 2021-12-21 15:06:40 · 1296 阅读 · 0 评论 -
C语言 字符串
1、获取字符串的长度(strlen)size_tstrlen(constchar*str);功能:计算字符串的有效长度,不包含0。返回值:返回字符串的字符数 。strlen函数计算的是字符串的实际长度,遇到第一个0结束。函数返回值一定是size_t,是无符号的整数,即typedef unsigned int size_t。如果您只定义字符串没有初始化,求它的长度是没意义的,它会从首地址一直找下去,遇到0停止。charname[50];memset(n...原创 2021-12-19 12:29:05 · 376 阅读 · 0 评论 -
C语言 浮点数
实际开发中使用double,而不使用float浮点数的输出float采用%f占位符。double采用%lf占位符。测试结果证明,double不可以用%f输入,但可以用%f输出,但是不建议采用%f,因为不同的编译器可能会有差别。long double采用%Lf占位符,注意,L是大写。浮点数输出缺省显示小数点后六位。浮点数采用%lf输出,完整的输出格式是%m.nlf,指定输出数据整数部分和小数部分共占m位,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值长度大于m,则按实.原创 2021-12-16 13:02:26 · 1436 阅读 · 0 评论 -
C语言整数
以下表格中,重点记住第一、二行十进制的输出格式,二十年来,八进制数我从来没有用过,十六进制数只在显示内存的地址时见过,所以大家不必关心八进制和十六进制的相关知识,了解即可。 %hd、%d、%ld 以十进制、有符号的形式输出short、int、long 类型的整数。 %hu、%u、%lu 以十进制、无符号的形式输出short、int、long 类型的整数。 %ho、%o、%lo 以八进...原创 2021-12-12 15:38:44 · 910 阅读 · 0 评论