摘要:
同为今天下午360的一道面试题。通过模2判断最后一位是否为1,为1则COUNT++,然后除2(相当与将该数右移一位),循环;最终求出结果。实现如下:(C实现)#include<stdio.h>void main(){int i,count=0;i=15;do{if((i%2)!=0) //判断末尾是否为1{count++; //末尾为1则count++}i=i/2; //i除2,相当于右移一位}while(i>=1);printf("1的个数为%d\n",count); //输出结果} 阅读全文
摘要:
今天中午360的面试官提的一个问题:宏定义的缺点。下面是别人文章关于这个问题的讨论,转载》当时没答出来,只知道如果某个常量或者函数名很长的时候可以用宏定义做替换,这样的话程序也会比较美观一点,可读性也大大增强了。其实在用VC编程的时候就会遇到很多宏定义,尤其是类似“LONG,LPCTSTR”等等之类的,它们属于微软的自定义类型,但其本质上还是属于C/C++里面的那几个标准类型。那用宏定义到底有什么好处呢?先来看一下宏的定义:用#define命令将一个指定的标识符(即宏名)来代表一个字符串。它的一般型式为:#define 表示符 字符串#define命令属于“预处理命令”中的一种。它是由C++. 阅读全文