makefile 学习之__fls 测试

#include <stdio.h>
#include<string.h>
#define BITS_PER_LONG 32
 unsigned long __fls(unsigned long word)
{
    int num = BITS_PER_LONG - 1;

    if (!(word & (~0ul << (BITS_PER_LONG-16)))) {
        num -= 16;
        word <<= 16;
               printf("word = [%d],num=[%d] (~0ul << (BITS_PER_LONG-16))=[%x]\n",word,num,(~0ul << (BITS_PER_LONG-16)));
    }
    if (!(word & (~0ul << (BITS_PER_LONG-8)))) {
        num -= 8;
        word <<= 8;
        printf("word = [%d],num=[%d] (~0ul << (BITS_PER_LONG-8))=[%x]\n",word,num,(~0ul << (BITS_PER_LONG-8)));
    }

    if (!(word & (~0ul << (BITS_PER_LONG-4)))) {
        num -= 4;
        word <<= 4;
        printf("word = [%d],num=[%d] (~0ul << (BITS_PER_LONG-4))=[%x]\n",word,num,(~0ul << (BITS_PER_LONG-4)));
    }
    if (!(word & (~0ul << (BITS_PER_LONG-2)))) {
        num -= 2;
        word <<= 2;
        printf("word = [%d],num=[%d] (~0ul << (BITS_PER_LONG-2))=[%x]\n",word,num,(~0ul << (BITS_PER_LONG-2)));
    }
    if (!(word & (~0ul << (BITS_PER_LONG-1))))
    {
        num -= 1;
        printf("word = [%d],num=[%d] (~0ul << (BITS_PER_LONG-1))=[%x]\n",word,num,(~0ul << (BITS_PER_LONG-1)));
    }

    return num;
}

int main(int argc, char **argv)  
{  
        printf("fls = [%d]\n",__fls(0X1010));  
        printf("aa = [%x]\n",~0ul);
        return 0;  

 } 


makefile 如下:加了一个新文件Makefile。填入下面的内容,然后输入make就可以编译了

test:he.c
    gcc  he.c -o hello


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值