我想知道如何以便携的方式可靠地确定字符的大小。AFAIK sizeof(char) 不能使用,因为这始终产生 1,即使在字节具有 16 位甚至更多或更少的系统上也是如此。
例如,在处理位时,您需要确切知道它有多大,我想知道这段代码是否会给出一个字符的实际大小,而与编译器的想法无关。IMO 指针必须由编译器增加到正确的大小,所以我们应该有正确的值。我对此是否正确,或者指针算法可能存在一些隐藏的问题,这会在某些系统上产生错误的结果?
int sizeOfChar()
{
char *p = 0;
p++;
int size_of_char = (int)p;
return size_of_char;
}