移植可能な方法で文字のサイズを確実に決定する方法を考えていました。AFAIK sizeof(char) は使用できません。これは、バイトが 16 ビットまたは多かれ少なかれあるシステムでも、常に 1 になるためです。
たとえば、正確な大きさを知る必要があるビットを扱う場合、このコードが文字の実際のサイズを与えるかどうか、コンパイラーがそれをどう考えるかに関係なく、私は疑問に思っていました。IMO ポインターは、コンパイラーによって正しいサイズに増やす必要があるため、正しい値が必要です。私はこれで正しいですか、それともポインター演算に隠れた問題があり、システムによっては間違った結果をもたらす可能性がありますか?
int sizeOfChar()
{
char *p = 0;
p++;
int size_of_char = (int)p;
return size_of_char;
}