c – sizeof(something)== 0是什么?

我有一个模板,它采用具有不同值的结构,例如:
struct Something
{
    char str[10];
    int value;
    ...
    ...
};

函数内部我使用sizeof运算符:跳入内存sizeof(Something);

有时我想不跳任何东西;我希望sizeof返回零.如果我输入一个空结构,它将返回1;我可以在模板中放置什么来使sizeof返回零?

解决方法

sizeof永远不会为零. (原因:sizeof(T)是T []类型数组中元素之间的距离,并且元素必须具有唯一地址).

也许您可以使用模板来进行sizeof替换,通常使用sizeof但是专门针对一种特定类型赋予零.

例如

template <typename T>
struct jumpoffset_helper
{
    enum { value = sizeof (T) };
};


template <>
struct jumpoffset_helper<Empty>
{
    enum { value = 0 };
};

#define jumpoffset(T) (jumpoffset_helper<T>::value)

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...