我来自C++背景,并且最近占用了C.我在为类型分配数字时遇到问题(反之亦然); 我需要的是一种为类型分配唯一ID的方法,最好是从0.我的目标是拥有一个基于传入类型索引数组的函数(或宏),我相信只有通过宏才能实现.
此外,由于我使用了sizeof()我需要传递的类型,因此enums难以使用替代方案.如果我将枚举器传递给函数/宏,那么我将不得不从数字中获取类型,完全相反(但可能更容易)的问题.
这在C中甚至可能吗?我已经尝试过研究这个问题,但是没有找到任何对这个问题的答案,特别是我能用C++做模板,如下所示:
int curTypeIdx = 0;
template <typename T>
struct TypeHandle {
static int const val;
}
template <typename T>
int const TypeHandle<T>::val = curTypeIdx++;
Run Code Online (Sandbox Code Playgroud)
原因是我正在建立一个ECS.我有一个EntityManager结构,它应该包含组件数组.由于我计划这是通用的,我定义了components(MAX_COMPONENTS)的上限并且有一个char*长度为s的数组MAX_COMPONENTS.在基本层面,目标是让用户EntityManager能够定义自己的组件,并将它们存储在这些通用阵列中.
如果有任何其他方式
谢谢大家的任何建议.
在我的python中,我正在编写一个需要的函数**kwargs.我遇到的问题是我经常None作为关键字值传递,这感觉就像糟糕的风格.例如:
def foo(**kwargs):
if 'bar' in kwargs:
return kwargs['bar']
def baz(x=None):
print(foo(bar=x))
Run Code Online (Sandbox Code Playgroud)
这里的问题是,如果x是None,那么我希望它只是不打印.kwargs如果关键字参数为None,如何将其添加到关键字参数中?