我有以下目录结构:
test/a
test/b/c
test/a/b/Ouput
test/c/d/e/Output
test/f/Output
Run Code Online (Sandbox Code Playgroud)
我想忽略"test"下的所有"输出"目录.我试过了test/**/Output,但没办法.我究竟做错了什么?
这个大型应用程序有一个内存池库,它在内部使用treap来存储内存节点.treap是使用cpp宏实现的,完整的文件trp.h可以在这里找到.当我尝试编译应用程序时,我收到以下编译器警告:
warning: this decimal constant is unsigned only in ISO C90
Run Code Online (Sandbox Code Playgroud)
通过删除部分宏代码并使用反复试验,我终于找到了罪魁祸首:
#define trp_prio_get(a_type, a_field, a_node) \
(2654435761*(uint32_t)(uintptr_t)(a_node))
Run Code Online (Sandbox Code Playgroud)
我不确定那个奇怪的数字在那里做什么,但我认为这是有充分理由的,所以我只想不管它.我确实想要修复警告 - 任何想法为什么编译器说它只在ISO C90中无符号?
编辑:我正在使用gcc-4.1