我想知道C是否具有语言或编译器(gcc)中的功能,以允许我将const的初始化数组转换为const结构的编译时查找表.这是我的情况改造:
typedef struct Entry {
bool alive;
float a, b, c;
double d, e, f;
} Entry;
Run Code Online (Sandbox Code Playgroud)
现在,我有一个数组的声明:
extern const int entryCount; // Assume this is equal to an enum value.
extern const Entry entries[entryCount];
Run Code Online (Sandbox Code Playgroud)
如上所述,数组中的位置相对于枚举常量,该常量是放入入口结构的数据的特征.假设entryCount初始化为枚举中的条目数.这是我的问题所在,当我初始化这个数组时:
const int entryCount = ENTRY_COUNT;
const Entry entries[entryCount] = {
{ false, 0.1f, 0.2f, 0.0f, 1.0, 1.0, -1.0 },
...
};
Run Code Online (Sandbox Code Playgroud)
它们是在编译时创建的,并且在运行时不会产生任何开销吗?或者它是否在运行时分配在内存中?因为价值永远不会改变.我怎样才能在C中实现这一目标?
我一直在寻找一阵子,但在MSDN资源和其他资源上找不到太多帮助。
我的困境很简单:我的应用程序需要一个基本目录到“下载”文件夹。我知道这DownloadsFolder门课,但是目前不适合我的需求。
如何在Windows Universal App中获取当前用户的下载文件夹路径?
var dictA = { male: 10, female: 20, unassigned: 30 };
var dictB = { male: 11, female: 21, unassigned: 31 };
var dictC = { male: 12, female: 22, unassigned: 32 };
Run Code Online (Sandbox Code Playgroud)
有没有比多个循环更简单的方法来产生如下结果:
{
male: [10, 11, 12],
female: [20, 21, 22],
unassigned: [30, 31, 32]
}
Run Code Online (Sandbox Code Playgroud)
我不确定这里的“组合”是否正确。