c语言库函数编译的优化2010-04-30c语言的有些库函数会在编译的时候被优化如gcc中log2(1)会被优化成常数但是log2(20)就会在运行时计算值fabs会被优化成机器(汇编)指令fabs所以即使你没有包含含有fabs声明的头文件也可以成功编译运行带有fabs函数的程序.....................................................................(int&)a和*((int*)&a)是一样的把&a这个地址上32位数看作int型..................................................................C语言标准提供了一种数据类型long long目前的平台上 long long是8字节的64位整数表示的数范围是[-2^63, 2^63-1]那么如何输入输出这个类型的数据呢long long test;scanf("%lld",&test);printf("%lld",test);在gcc4+Linux(2.6.15)下面,这样的输入输出是没有问题的但是在Windows下面一些老的编译器,这样的代码是没法正确工作的原因是C-Runtime-Library不支持这个参数在XP+DevC++4.9下面这个得变成windows的特殊方式指定类型%lld得用%I64d替换---------------------------------------------------------------怎样读取一个double的全部内存数据
typedef union
{
double value;
struct
{
unsigned int lsw;
unsigned int msw;
} parts;
} ieee_double_shape_type;
/* Get two 32 bit ints from a double.*/
#define EXTRACT_WORDS(ix0,ix1,d)
do {
ieee_double_shape_type ew_u;
ew_u.value = (d);
(ix0) = ew_u.parts.msw;
(ix1) = ew_u.parts.lsw;
} while (0)
怎样输出一个完整的浮点数
double d1;
char str1[64];
d1=0.681638760023334166733241952779893935; //36
dtoa(str1, d1, 40);
printf(" d1 = %s
",str1);
---------------------------------------------------------------