开发者社区 问答 正文

为什么gcc 对类型转换不报错?

比如
int f1(int *x);
int main()
{
signed char a = 0, b = 0;
f1(&a);
}
int f1(int *x)
{
*x = 0xaabb;
}
b 被改写为0xaa, 显然不是符合原来的意图。

展开
收起
a123456678 2016-03-19 13:57:29 2083 分享 版权
1 条回答
写回答
取消 提交回答
  • cc不知道你的真实意图,你的真实意图需要自己去实现.
    gcc怎么知道你的调用不是下面的方式?

    int f1(int *x);

    int main()
    {
    signed char a[2], b = 0;
    int ab;
    f1(a);
    f1(&ab);
    }

    int f1(int *x)
    {
    *x = 0xaabb;
    return 0;
    }

    2019-07-17 19:08:04
    赞同 展开评论
问答分类:
问答标签:
问答地址: