如何指定CMake应使用不同的link_directories值,具体取决于目标是32位还是64位?例如,32位二进制文件需要与32位Boost链接,64位二进制文件需要与64位Boost链接.
在C中有什么类似预处理器变量的吗?它可以简化我的定义.
目前我有这样的事情:
typedef struct mystruct {
int val1;
int val2;
int val3;
int val4;
} MYSTRUCT;
typedef struct mysuperstruct {
MYSTRUCT *base;
int val;
} MYSUPERSTRUCT;
#define MY_OBJECT_BEGIN(name, val1, val2, val3, val4) \
MYSTRUCT name##Base = { val1, val2, val3, val4 }; \
MYSUPERSTRUCT * name##Objs = {
#define MY_OBJECT_VALUE(name, val) \
{ &(name##Base), val },
#define MY_OBJECT_END() \
NULL \
};
Run Code Online (Sandbox Code Playgroud)
它以这种方式使用:
MY_OBJECT_BEGIN(obj1, 1, 2, 3, 4)
MY_OBJECT_VALUE(obj1, 5)
MY_OBJECT_VALUE(obj1, 6)
MY_OBJECT_VALUE(obj1, 7)
MY_OBJECT_END()
Run Code Online (Sandbox Code Playgroud)
这产生了这样的事情:
MYSTRUCT obj1Base …Run Code Online (Sandbox Code Playgroud) 让我们看一个 JS 对象示例(又名“关联数组”):
var zoo = {
monkey: { legs: 4, color: "black" },
fish: { legs: 0, color: "yellow" },
turtle: { legs: 4, color: "green" },
emu: { legs: 2, color: "gray" },
};
Run Code Online (Sandbox Code Playgroud)
现在我想检索水生动物的嵌套对象(也称为“子数组”)。是否有标准的 JS/jQuery 构造或函数来按数组过滤对象属性(“按数组索引数组”),即:
var aquatic = zoo["fish", "turtle"];
Run Code Online (Sandbox Code Playgroud)
结果显然应该是{ { legs: 0, color: "yellow" }, { legs: 4, color: "green" } }。
或者for循环是这里最简单的解决方案?