资源简介
The book `C Interfaces and Implementations' by David Hanson
ftp://ftp.cs.princeton.edu/pub/packages/cii/
代码片段和文件信息
#include
#include
#include
#include
#include
/*
On most platforms malloc returns pointers to blocks that are
aligned on addresses that are multiples of the size of the largest
basic data type. Some CII functions use a union to determine this
multiple (cf. union align on p. 80). Alignments are less restrictive
on some platforms and for these MAXALIGN must be defined as the
alignment required.
This program attempts to determine the correct value for MAXALIGN if
one is necessary and echo the appropriate -D option. Unfortunately
the method used relies on the C compiler using the same alignments as
malloc which is not required. malloc is the final authority: If it
returns addresses that are multiples of sizeof (union align) then
MAXALIGN is unnecessary; otherwise MAXALIGN must provide the
alignment. Incorrect values of MAXALIGN can cause crashes and
assertion failures.
*/
union align {
int i;
long l;
long *lp;
void *p;
void (*fp)(void);
float f;
double d;
long double ld;
};
typedef void (*functp);
#define yy \
xx(inti);\
xx(longl);\
xx(long *lp);\
xx(void *p);\
xx(functpfp);\
xx(floatf);\
xx(doubled);\
xx(long doubleld);
int main(int argc char *argv[]) {
#define xx(tv) struct { char pad; t v; } v
yy
#undef xx
unsigned max = 0;
#define xx(tv) if ((char *)&v.v - &v.pad > max) max = (char *)&v.v - &v.pad
yy
#undef yy
if (argc > 1 && strcmp(argv[1] “-v“) == 0)
fprintf(stderr “sizeof (union align) = %u\n“ sizeof (union align));
assert(max);
if (max != sizeof (union align))
printf(“-DMAXALIGN=%u\n“ max);
return EXIT_SUCCESS;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-11-27 00:08 《C语言接口与实现》书中源代码\
文件 1943 2016-11-26 23:59 《C语言接口与实现》书中源代码\README.txt
文件 90233 2016-11-27 00:00 《C语言接口与实现》书中源代码\cii11.tar.Z
文件 52190 2016-11-27 00:00 《C语言接口与实现》书中源代码\cii11.tar.gz
文件 77587 2016-11-27 00:01 《C语言接口与实现》书中源代码\cii11.zip
目录 0 2016-11-27 00:06 《C语言接口与实现》书中源代码\contrib\
文件 1983 2016-11-27 00:03 《C语言接口与实现》书中源代码\contrib\README.txt
文件 9496 2016-11-27 00:06 《C语言接口与实现》书中源代码\contrib\cii-lcc-win32.zip
文件 29140 2016-11-27 00:03 《C语言接口与实现》书中源代码\contrib\cii10-nt.zip
文件 1713 2016-11-27 00:04 《C语言接口与实现》书中源代码\contrib\maxalign.c
文件 2547 2016-11-27 00:05 《C语言接口与实现》书中源代码\contrib\thread.linux86
目录 0 2016-11-27 00:10 《C语言接口与实现》书中源代码\old\
文件 63501 2016-11-27 00:08 《C语言接口与实现》书中源代码\old\cii09b2.tar.Z
文件 37586 2016-11-27 00:08 《C语言接口与实现》书中源代码\old\cii09b2.tar.gz
文件 54235 2016-11-27 00:08 《C语言接口与实现》书中源代码\old\cii09b2.zip
文件 72769 2016-11-27 00:09 《C语言接口与实现》书中源代码\old\cii09b3.tar.Z
文件 43477 2016-11-27 00:09 《C语言接口与实现》书中源代码\old\cii09b3.tar.gz
文件 66704 2016-11-27 00:09 《C语言接口与实现》书中源代码\old\cii09b3.zip
文件 74579 2016-11-27 00:09 《C语言接口与实现》书中源代码\old\cii10.tar.Z
文件 44850 2016-11-27 00:09 《C语言接口与实现》书中源代码\old\cii10.tar.gz
文件 68171 2016-11-27 00:10 《C语言接口与实现》书中源代码\old\cii10.zip
- 上一篇:学生选课管理系统C语言
- 下一篇:yuv422与yuv420互转
相关资源
- 学生选课管理系统C语言
- BP算法程序实现包括matlab、C语言、C
- 基于C语言的图片放大与缩小
- C语言编写的空间桁架计算程序
- P89LPC932硬件I2C软件包
- 热电偶查表
- 谭浩强 C语言程序设计第三版视频教程
- p2p通信的简单实现c语言
- 学生信息管理系统,C语言,课设,附
- Linux软件工程师(C语言)实用教程_
- 使用c语言写的磁盘碎片整理程序
- c语言 实现费诺编码
- AES密码算法C语言实现
- C语言 stm32 AES加密解密
- C语言模拟IP重组 源码
- 用C语言写bitmap
- 背包问题之贪婪算法求解C语言源代码
- 史上最全经典数据结构算法c语言实现
- MP3音频解码流程带C语言源码加注释
- 战争模拟器C语言
- 看门狗 c语言程序代码
- C语言课程设计——猜数字游戏
- C51交通灯控制系统(c语言)
- c语言写的svm程序
- C语言编写的数独游戏
- linux环境C语言tcp聊天室
- C语言端口扫描源码
- 基于C语言的矩阵乘法
- ELGamal加解密(c语言实现).zip
- RSA加解密c语言实现.zip
评论
共有 条评论