小编mrF*_*les的帖子

有没有办法为C中的类型分配唯一的编号?

我来自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能够定义自己的组件,并将它们存储在这些通用阵列中.

如果有任何其他方式

谢谢大家的任何建议.

c types

5
推荐指数
1
解决办法
104
查看次数

如果它是None,则不能将kwarg传递给函数

在我的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,如何将其添加到关键字参数中?

python python-3.x

-3
推荐指数
1
解决办法
336
查看次数

标签 统计

c ×1

python ×1

python-3.x ×1

types ×1