用sizeof操作符在运行时来判定变量字长是错误的。因为sizeof()的值在编译时就确定了。上面老兄的函数永远只能返回-1其实在C语言中用不着去判断变量类型。如果再调用函数时传入了不匹配的类型,编译器会给出警告。
char实际上是1字节整型,所以它可以存放长度不超过1字节数值范围的int型的常量。数值范围16进制0到0xff.超出此范围的整型常量的高位字节会自动丢失。
c语言中int型和char型可以相互转化,你可采用强制类型转换解决问题.