A C Programming Language Puzzle
来源:互联网 发布:淘宝模特照片处理修腿 编辑:程序博客网 时间:2024/06/16 11:12
原文網址,本文不是完全翻譯,而是自己吸收過後,在寫下此筆記
Problem
有一變數a=12,b=36,請寫出一個c function/macro,回傳3612且不使用算數運算和字串處理的函式.
Token-Pasting Operator
當擴展##
macro時,##
會將左右兩邊的符號(token),合併為一個符號(token).
#include <stdio.h>#define merge(a, b) a##bint main(){ int a = 12; int b = 36; printf("%d ", merge(a, b));}// Output: 1234
Solution
有了Token-Pasting Operator,應該不難想出此題的解答
#include <stdio.h>#define merge(a, b) b##aint main(){ int a = 12; int b = 36; printf("%d ", merge(a, b));}// Output: 3612
Reference
- https://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenation
- https://msdn.microsoft.com/en-us/library/09dwwt6y.aspx
0 0
- A C Programming Language Puzzle
- 《C Programming Language: A Modern Approach》
- Programming | Language | C
- C programming language
- C Programming Language Standard
- The C programming language
- the c programming language
- The C Programming Language
- a expample of the c programming language.(temp)
- c programming language learn 5
- 翻译《the c programming language》
- The C Programming Language--------(1)
- The C Programming Language 笔记
- C programming language BNF definition
- 《The C Programming Language》笔记
- C Programming Language 1-13
- C Programming Language 1-14
- C Programming Language 1-16
- scala implicit 隐式转换
- Shell脚本调试技术
- oracle 如何在group by 的语句中使用rownum,实现分页
- Github(一)
- 自定义View系列教程05--示例分析
- A C Programming Language Puzzle
- 关于java中并发时引起的问题(多线程问题)
- java 实现Excel批量导入数据库 及生成excel
- NotePad++,EditPlus,UltraEdit,Windows的记事本,浏览器设置utf-8
- 快速查找Unity死循环
- Design Twitter
- Android-更新系统图库碰到的问题
- 左旋转字符串
- jdk:CopyOnWriteArrayList