腾讯笔试题(1)

1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句

这是第一题,感觉好难啊

我是这样写的  #define max(a,b)  ((int (a)) / (int (b)) ? (a) : (b))

这只能比较正数啊

网上有这样的  #define max(a,b) (((a)-(b))&(1<<31))?(b):(a)

这个也只能比较整型的啊

还有这样的  #define MAX(a,b) (abs((a)-(b))==((a)-(b))?(a):(b))

刚看到网上说我这种的是错的可笑。。。。

 

2. 如何输出源文件的标题和目前执行行的行数

intline=__LINE__;  //注意:LINE前后分别是两个下划线“_”(半角状态下)
stringfile=__FILE__;

第一次见这个东西啊= =、

感觉TX的题好难啊。。。看来要学的真的相当相当的多啊。。

原文地址:https://www.cnblogs.com/louzhang/p/2596681.html