点击这里给我发消息 点击这里给我发消息

c语言库函数编译的优化

添加时间:2013-12-7
    相关阅读: 程序 Windows C语言 C++ 优化 平台
c 语言的有些库函数会在编译的时候被优化
    如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)
相关c语言库函数编译的优化

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册