struct结构体的字节数 等于 结构体中最大类型的字节数的倍数。如:typedef struct Student{ short id; //2个字节 char name[15]; //1*15个字节 int age; //4个字节 char num; //1个字节} Student;总共28个字节...
分类:
编程语言 时间:
2014-06-25 21:13:46
阅读次数:
235
接上一篇文章,当Nginx以文件作为用户的请求时,它不会把文件内容读入内存,然后再从内存发送出去,而是会调用sendfile系统调用在不经过用户空间的情况下,从内核直接发送出去。这样做显然效率要更高,Nginx也为我们封装好了一系列的接口,下面就来说明如何发送一个磁盘文件给客户端。
和从内存直接发送数据最大的不同在于ngx_buf_t缓冲区的设置方法,ngx_buf_t结构体的定义如下:...
分类:
其他好文 时间:
2014-06-22 20:44:52
阅读次数:
211
结构体的内存布局记住两个规则即可,这是编译器的优化措施。
规则1:结构体中第一个成员的偏移量是0,以后每个成员的位置是x的倍数;
x = min(#pragma pack(), 该成员自身的长度)
规则2:成员对齐后,结构体自身也要对齐,按照y的倍数进行;
y = min(#pragma pack(), 最大成员尺寸)。
其中#pragma pa...
分类:
其他好文 时间:
2014-06-22 19:35:35
阅读次数:
171
扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)。扩展和 Objective-C 中的分类(categories)类似。(不过与Objective-C不同的是,Swift 的扩展没有名字。)
Swift 中的扩展可以:
1.添加计算型属性和计算静态属性
2.定义实例方法和类型方法
3.提供新的构造器
4.定义下标
5.定义和使用新的嵌套类型
6.使一个...
分类:
其他好文 时间:
2014-06-22 14:50:00
阅读次数:
211
一、指定的初始化
很多人都知道像这样来静态地初始化数组:
int fibs[] = {1,2,3,4,5} ;
C99标准实际上支持一种更为直观简单的方式来初始化各种不同的集合类数据(如:结构体,联合体和数组)。
数组的初始化
我们可以指定数组的元素来进行初始化。这非常有用,特别是当我们需要根据一组#define来保持某种映射关系的同步更新时。来看看一组错误码的定义...
分类:
其他好文 时间:
2014-06-22 14:13:58
阅读次数:
250
typedef struct student{
int num; //成员
int age;
char name[10];
}s_stu,*p_stu;...
分类:
其他好文 时间:
2014-06-22 14:01:44
阅读次数:
232
Menu.h#ifndef__MENU_h__#define__MENU_h__#include"Functions.h"/*目录结构体定义* /structMenuItem{shortMenuCount;char*DisplayString;void(*Subs)();structMenuItem...
分类:
其他好文 时间:
2014-06-22 12:08:36
阅读次数:
282
1 /* 2 hdu 2896 病毒侵袭 ac自动机 3 从题意得知,模式串中没有重复的串出现,所以结构体中可以将last[](后缀链接)数组去掉 4 last[]数组主要是记录具有相同后缀模式串的末尾节点编号 。本题中主要是计算每一个模式串 5 在主串中有没有出现过,而不是计算出现...
分类:
其他好文 时间:
2014-06-22 11:08:48
阅读次数:
291
类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值。存储型属性的值不能处于一个未知的状态。
你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值。以下章节将详细介绍这两种方法。
注意:
当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property
observers)。
一、基本语法
...
分类:
其他好文 时间:
2014-06-22 00:03:47
阅读次数:
287