G*****h 发帖数: 33134 | 1 t.cc:
void getInt(int *p)
{
*p = 0;
}
bool silly()
{
bool b;
getInt((int *)&b);
return b;
}
int main()
{
return (int)silly();
} |
a9 发帖数: 21638 | 2 有吧。
【在 G*****h 的大作中提到】 : t.cc: : void getInt(int *p) : { : *p = 0; : } : bool silly() : { : bool b; : getInt((int *)&b); : return b;
|
G*****h 发帖数: 33134 | 3 什么错?
编译是没问题的
【在 a9 的大作中提到】 : 有吧。
|
M**********n 发帖数: 432 | 4 sizeof(bool) = 1
sizeof(int) = 4
【在 G*****h 的大作中提到】 : t.cc: : void getInt(int *p) : { : *p = 0; : } : bool silly() : { : bool b; : getInt((int *)&b); : return b;
|
G*****h 发帖数: 33134 | 5 编译器不是都要加 padding 到整字对齐的么
再说为啥不安全的 cast 编译不报错
【在 M**********n 的大作中提到】 : sizeof(bool) = 1 : sizeof(int) = 4
|