• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

函数声明的问题

奔跑的黑蚂蚁 2018-05-03 浏览量:628
在keilv5中编写程序时发现,一个函数需要在多个文件中调用,将这个函数在头文件中声明的时候声明为:“unsigned char flash_w()”声明为返回值是unsigned char类型的,但是我在调试程序的时候,将这个函数的原型改为了返回值是枚举类型的,重新编译竟然没报警告?????????什么情况???
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这种情况说明编译器是可以解决这类返回值不匹配的问题的,但是并不能依赖编译器不提示就代表程序运行没有问题,要实验确认了没问题才可以
    • 发布于 2018-05-05
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 没有问题啊,枚举值就是unsigned int值,和unsigned char是兼容的。
    • 发布于2018-05-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种情况下,可能是一种特例,我试了一下,int 与float型弄错的话,会报错的。
    • 发布于2018-05-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个应该只是编译器的问题,不过这两种类型不能混用的
    • 发布于2018-05-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有警告更好 有警告也不碍事
    • 发布于2018-05-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 看一下强制类型转换顺序,你就明白了,int和char它们的数据长度不一样,长的可以包含短的,短的如果包含长的就不行了
    • 发布于2018-05-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 枚举值是立即数,和char型变量是兼容的。
    • 发布于2018-05-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 都是整数类型之内的不会报错
    • 发布于2018-05-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 枚举与char是一样的数据类型,在物理上的存储结构是一样的。
    • 发布于2018-05-05
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

函数声明的问题