作者Hack (R)
看板C_and_CPP
标题[问题] 特殊的#define
时间Sun Oct 13 18:29:50 2019
开发平台(Platform): (Ex: Win10, Linux, ...)
Linux
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
GCC
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
No
问题(Question):
看到一段code是这样写的:
#define tmp_data(w) { w(0x11), w(0x22), w(0x33), w(0x44) }
想知道这段code要怎麽使用
可以怎麽印出来呢?
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.251.61.121 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1570962593.A.5BE.html
1F:推 b0920075: gcc可以看预处理後的程式码吧 10/13 18:32
2F:→ loveme00835: 阵列初始化 10/13 18:54
3F:→ Lipraxde: 编译时加上 -E,如果是用 cmake 生成 makefile 的话可 10/13 19:09
4F:→ Lipraxde: 以到目录下 make [filename].i,应该会出现在 CMakefil 10/13 19:09
5F:→ Lipraxde: es 目录底下 10/13 19:09
[简化程式码後再gcc xxx.c -E]
#include <stdlib.h>
#define sb_data(w) {\
w(0x63), w(0x7c), w(0x77)}
int main(){
return 0;
}
[结果如下]
https://hackmd.io/0xBayZT8RfuPQBLIJ5Mi9g?view
但好像没看到有用的资讯(?)
可以帮小弟解释一下吗~
※ 编辑: Hack (60.251.61.121 台湾), 10/14/2019 11:16:24
6F:→ Lipraxde: 要看有用到那个 macro 的档案 10/14 11:49
7F:→ nh60211as: 你要实际使用那个macro啊 10/14 12:00
原来如此! 感谢教学~
9F:→ mabinogi805: 还有这种作法…… 10/15 01:23
10F:推 qscgy4: define 还有很多神奇的操作呢,这算简单的 10/15 09:08
这种操作我已经觉得很神了XD
※ 编辑: Hack (61.218.44.76 台湾), 10/17/2019 14:28:47