永发信息网

warning: cast from pointer to integer of different size

答案:5  悬赏:60  手机版
解决时间 2021-03-22 11:36
warning: cast from pointer to integer of different size
最佳答案
修改成:p=(void *)((unsigned int)a + (unsigned int)b);
错误原因:

    首先一点,两个地址相加没有意义,地址加一个偏移量才有意义,你一行实质是两个地址相加;
    如果你想练习使用指针访问变量的值,从而得到1000+11的结果,那么就是int c = *a + *b; 最后结果是一个数字,不是地址,所以不要赋给p;
    如果你想要p指向最后得到的结果,那么再增加一行p=(void*)&c。
相关警告及解决办法:
    显示:warning: implicit declaration of function 'Example()'。
    警告原因:在你的.c文件中调用了函数Example(),可是你并没有把声明这个函数的相应的.h文件包含进来,有可能你在一个.c文件中定义了这个函数体,但并没有在.h中进行声明。
    解决方法:你可以在调用这种函数的.c文件的一开始处加上:extern Example()或者可以在调用这种函数的.c文件中包含进声明了函数Example()的头文件,如果你在一个.c文件中定义了这个函数体,但并没有在.h中进行声明,不嫌麻烦的话,你也可以去生成一个.h文件,加上你的函数声明。
    显示:warning: unused variable 'param'。
    警告原因:很明显,是您定义了变量‘param',却根本没有使用它。
    解决方法:不需要用的话,就删了它吧。
    显示:warning: statement with no effect。
    警告原因:可能的情况是,在你的文件中,你这么干#define MACROPRINT然后在某一处又定义了#define MACROPRINT printf。然后你在各处引用MACROPRINT(“HELLO”),这样不会出错,但是发生了警告“这个声明是没有用的”。
    解决方法:把#define MACROPRINT删掉。
    显示:warning: int format, long int arg (arg 3)。
    警告原因: 象这样printf("%s%d, szDebugString, ulGwId);你的ulGwId是一个unsigned long型的,而你为它选择的输出形式却是 “%d”(这个格式是为整数型服务的-int)。
    解决方法: 这样的错误你只要做到参数类型一致就可以了,象上面的现象,你只要把“%d”改成“%d”就可以了。
全部回答
p=(void *)((long long)a+(char *)b); // a 和 b 都是指针,按说是不能加的,先想好要做什么.
printf("p = %d\n",(void *)p); // %d是整数的格式符号, 改成 %p
这一行问题很多,看起来兄弟是刚刚学习这门语言的
1. 首先一点,两个地址相加没有意义,地址加一个偏移量才有意义,你一行实质是两个地址相加。
2. 如果你想练习使用指针访问变量的值,从而得到1000+11的结果,那么就是int c = *a + *b; 最后结果是一个数字,不是地址,所以不要赋给p
3. 如果你想要p指向最后得到的结果,那么再增加一行p=(void*)&c;
改成
p=(void *)((int)a+(char *)b);
就行了,没必要用long long
char *是四字节,而long long是8字节,在把char *强转成整型的时候,默认专为4字节,与long long的8字节不匹配,所以告警。

这句直接改为
p=a+b;不就可以了?追问原来是这个长度不一样,明白了。
p=a+b 是不行的 出现:invalid operands to binary + ,这个是什么原因造成的?追答可能是你的编译器不允许这么干。

改成p=(void *)((unsigned int)a + (unsigned int)b);应该就可以了吧。只是两个地址相加,其和可能超过4字节整型的表达范围,产生溢出。所以一般不会用两个指针相加,而是用一个指针再加一个偏移量。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
快手怎么查找不了好友
中国职工之家C座-网球馆地址有知道的么?有点
Why is Lily so upset?- She didn’t win the
怎么用手机短信发照片,短信如何发相片
我都玩了好多局了图标就是不亮
有关国学的歌曲
电脑显示器开机时显示”节点模式“无法开机,
灰姑娘·洗护生活馆地址在什么地方,想过去办
表示自律的古诗词,形容清正廉洁光明磊落自律
女 22岁工作1年存款5万 月薪4 5千,能剩下三
When I first told people I was going to wo
运城的气候怎么样?
Some people in Britain or America like __f
奥利匹克运动的格言,有关运动的名言
我手机是OPPOT29以前数据线连接电脑会自动提
推荐资讯
你就吹牛吧英文怎么说,吹牛用英语怎么说
陈楚生为什么坐牢 陈楚生为什么离开天娱 陈楚
歌词以梦为马,以汗为泉是哪首歌?
工伤的医药费怎么报销,医疗报销需要哪些单据
小学生优美的段落摘抄,小学生好句摘抄大全30
如何去实现射频功率放大器RFPA的稳定性?
怎么克服家庭带来的自卑
我的qq中心已停用 上哪可以找到未处理的好友
“阅微草堂”是清朝哪位大学生的书房?
计算:-24的结果为A.-8B.8C.-16D.16
如图,已知∠B=∠DEF,AB=DE,请添加一个条件
北京有关诗词,古代学子进京赶考赶考高中的诗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?