- 博客(10)
- 资源 (11)
- 收藏
- 关注
原创 C语言(基本数据类型和可移植性数据类型)
C语言中short、int、long等被称为基本数据类型,它们的长度在不同的平台间是不确定的,因此它们不具备可移植性。 拓展:在各个不同的平台中,都会定义类似int32_t,int16_t,size_t,time_t这样的数据类型,他们实际都是不同的整型,但是他们的长度是固定的,这是他们被称为可移植性数据类型的原因。他们的实现原理简介如下,比如在A平台中int是4字
2016-01-31 13:15:33 3771
原创 C语言(变参函数)
C语言虽然没有C++的函数重载特性,但也可以实现变参,但要保证第一个参数信息的完整性。 拓展:定义变参函数时,第一个参数一般是字符串,携带后续变参的类型和数量信息,变参使用三点来表示,如:void sumup(const char *info, ...); 再使用va_list、va_start()、va_arg()和va_end()来索引和控制这些
2016-01-31 13:15:08 844
原创 C语言(柔性数组,零长数组)
可以定义长度为0的数组,这样的数组被称为零长数组或者柔性数组,通常被用在结构体中存放长度可变的数据。 拓展:struct node{ int a; float f; char data[0];};在给结构体分配内存的时候,我们会根据需要多分配多一点内存。struct node *p = malloc(
2016-01-31 13:14:35 1331
原创 Linux运维(文件类型)
Linux中,所有文件被分成了7类,它们分别是:目录、符号链接、UNIX域套接字、命名管道、字符设备节点、块设备节点和其他文件(即普通文件)。 拓展:1,除了网络设备之外,其他所有的设备在Linux中都被归类为字符设备或者块设备,他们在/dev下都有对应的节点文件。2,符号链接文件就是平常说的软链接文件,区别于以前的硬链接文件,硬链接文件是一种过时的技术,目前已不再
2016-01-31 13:14:02 344
原创 Linux运维(ubuntu的普通用户如何使用sudo命令)
为了安全起见,ubuntu中的普通用户一般没有root权限,因此即使知道管理员密码也无法使用sudo,但这个情况可以通过加入sudoer列表或者加入sudo组来改变。 拓展:不管使用哪种方式,使得一个普通用户可以使用sudo命令,都必须先切换到管理员root用户中,或者切换到可以使用sudo的用户中。1,加入sudoer列表的做法:第一步,执行sudo vi
2016-01-31 13:13:32 2639
原创 Linux运维(/var目录)
一般而言,/var目录下存放大量能导致磁盘碎片的零碎文件,分配和释放频繁,因此给/var单独提供一个挂载分区能极大提高系统的磁盘性能和维护周期。 拓展:实际上,基于性能和方便的原因,Linux系统中的/home、/usr和/var都应该有自己单独的挂载分区。
2016-01-31 13:12:59 605
原创 C语言(地址对齐和结构体大小)
结构体的大小取决于每个成员的大小以及他们的地址对齐要求,由于地址需要对齐,因此结构体内部一般都存在填充现象。 拓展:变量的地址需要对齐意味着:在内存中开辟一块空间(即变量)的时候,并不是随便搞一块适当大小的内存就可以了,我们对这块内存的地址是有要求的,比如int型或者double型数据的地址必须是4的整数倍,再如short型数据的地址必须是2的整数倍等等,这些要求,就是所谓
2016-01-31 13:12:28 4605 1
原创 C语言(字符串的本质)
C语言没有字符串类型,所有的字符串其实都是字符指针,而且是一个指向其首字符的指针。比如"abc"就是一个指向字符'a'的指针。拓展:char *p = "abc"; 此处,就是将'a'的地址赋值给了指针p,因此我们一般说“p指向了字符串"abc"其实只是一种简便的习惯说法,严格地说法应该是“p指向了字符串"abc"的首字符'a'”。根据这个小知识点,和指针运算规则,
2016-01-31 13:11:56 1760
taglist.zip
2013-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人