解决C语言宏编程难题

2021年3月22日15:38:30 发表评论 577 次浏览

给a = 12和b = 36编写一个C函数/宏, 该函数不使用算术, 字符串和预定义函数就返回3612。

我们强烈建议你最小化浏览器, 然后自己尝试。

以下是使用String的一种解决方案令牌粘贴运算符(##)个C宏。例如, 表达式" a ## b"打印" a"和" b"的串联。

以下是有效的C代码。

#include <stdio.h>
#define merge(a, b) b##a
int main( void )
{
     printf ( "%d " , merge(12, 36));
     return 0;
}

输出如下:

3612

感谢匿名用户提出此解决方案。

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: