找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3500|回复: 7
打印 上一主题 下一主题
收起左侧

C语言小白函数指针问题assignment from incompatible pointer type [-Wincompatibl...

[复制链接]
跳转到指定楼层
楼主
一直对C语言指针比较陌生,最近在开始了解指针,写了个简单代码(不实现任何功能,纯粹是测试指针用法)想测试下自己写的对不对,但是编译后,错误是没有,但总是有警告。
虽然没有错误,但本着追求完美的宗旨,总是想搞清楚警告的原因,但找来找去,没发现两者指针类型不同啊,不都是unsigned short吗?

对指针实在是了解不多,望大神指点,如下是代码:

#include <atmel_start.h>

unsigned short adcacq0(int); //函数声明
unsigned short adcacq1(int); //函数声明
unsigned short (*adcacq)(int)=adcacq1; //函数指针变量声明,同时赋初值
unsigned short adcacq2(unsigned short(*adcacq)(int),int);  //函数声明,函数指针传递参数


int main(void)
{
        
        while (1)
        {
                adcacq2(adcacq0,9);
                adcacq2(adcacq1,8);               
        }
}



unsigned short adcacq2(unsigned short(*adcacq)(int),int x) //此函数里的代码总是有警告
{
        unsigned short *Q=0, a=1;
        Q=adcacq;
        return (*Q+a);
}

unsigned short adcacq0(int acq)
{
        int a=0,b=0,c=0;
        a=b+c;
        return a;
}

unsigned short adcacq1(int swc)
{
        int d=0,e=0,f=0;
        d=e+f;
        return d;
}



编译后没有错误,但总是有警告消不掉:
assignment from incompatible pointer type [-Wincompatible-pointer-types],看了半天也没看出来哪里类型不兼容?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2022-4-10 18:54 | 只看该作者
报错会提示是哪一行,藏着遮着不让大家看几个意思?
回复

使用道具 举报

板凳
ID:290373 发表于 2022-4-10 22:21 | 只看该作者

把函数指针赋值给unsigned short指针了
回复

使用道具 举报

地板
ID:310441 发表于 2022-4-10 23:18 来自手机 | 只看该作者
Hephaestus 发表于 2022-4-10 18:54
报错会提示是哪一行,藏着遮着不让大家看几个意思?

估计是来考验大家的。下图的提示信息说的再明白不过了……
回复

使用道具 举报

5#
ID:997026 发表于 2022-4-11 15:59 | 只看该作者
田贺 发表于 2022-4-10 22:21
把函数指针赋值给unsigned short指针了

谢谢,我太小白了,函数指针只能指向函数的入口地址,只能指向类型相同的函数,不能赋值给类型相同的普通变量
回复

使用道具 举报

6#
ID:139866 发表于 2022-4-11 16:30 | 只看该作者
田贺 发表于 2022-4-10 22:21
把函数指针赋值给unsigned short指针了

盲猜这是VSCode
回复

使用道具 举报

7#
ID:123289 发表于 2022-4-12 09:03 | 只看该作者
凡是对指针搞不定的,基根本原因的:
1、对CPU中存储器的架构不清楚
2、对数据的存储格式也不清楚
3、对数据的访问方式不清楚
建议:先弄清楚以上三点!
回复

使用道具 举报

8#
ID:997026 发表于 2022-4-13 23:25 | 只看该作者
yzwzfyz 发表于 2022-4-12 09:03
凡是对指针搞不定的,基根本原因的:
1、对CPU中存储器的架构不清楚
2、对数据的存储格式也不清楚

谢谢指点,目前处于指针学习的初级阶段,确实很多不懂,感谢指明方向
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表