已读、不回 2021-03-28 04:30 采纳率: 50%
浏览 44
已采纳

C语言 有关C4704警告的提问(小白)求大神解答一下!

这是我的一个实验报告的内容:

#include<stdio.h>
#include<stdlib.h>
int main()
{
	FILE *fp;
	int hang,da,xi,shu,qt;
	int count_file(FILE *fp,int *da,int *xi,int *shu,int *qt);	
	if((fp = fopen("a.txt","r")) == NULL)
	{
		printf("不能打开文件!\n");
		exit(0);
	}
	hang=count_file(fp,&da,&xi,&shu,&qt);
	fclose(fp);
	printf("行数为:%d\n",hang);
	printf("大写字母个数为:%d\n",da);
	printf("小写字母个数为:%d\n",xi);
	printf("数字个数为:%d\n",shu);
	printf("其他字符个数为:%d\n",qt);
	return 0;
}
int count_file(FILE *fp,int *da,int *xi,int *shu,int *qt)
{
	int hang;
	char ch;
	hang=0,*da=0,*xi=0,*shu=0,*qt=0;
	while(!feof(fp))
	{
		if((ch=fgetc(fp)) == EOF) break;
		if(ch=='\n') hang++;
		else if(ch>='A' && ch<='Z') *da=*da+1;
		else if(ch>='a' && ch<='z') *xi=*xi+1;
		else if(ch>='0' && ch<='9') *shu=*shu+1;
		else *qt=*qt+1;
	}
	return hang+1;
}

但是我不明白的是为什么我在定义 count_file函数的时候是int型,也是用的int定义的hang。

但如果我把count_file(FILE *fp,int *da,int *xi,int *shu,int *qt)改成count_file(FILE *fp,int da,int x,int shu,int qt).

在hang=count_file 这一行就会报c4707的警告.为什么函数的形参会影响这个呢?求大神解答!

展开全部

  • 写回答

2条回答 默认 最新

  • 小白小白你好菜 2021-03-28 06:01
    关注

    你传的实参是&类型,即地址类型,形参是数据类型,类型不匹配且无法转化,系统在你调用这个函数的地方报错,没毛病。

    系统看来,你的自定义函数没有问题,但是你的调用产生问题,所以在那行报错,4707应该就是类型不匹配

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
  • ¥15 eNSP中防火墙的使用
  • ¥15 不能对数据库增删改但是可以查询
  • ¥15 在触控设备上启动TabTip.exe打不开键盘界面,怎么用代码启动进程打开界面
  • ¥15 关于#mlnet#的问题:mlnet相关请求(语言-c#)
  • ¥15 lvgl7.11怎么做出文字被选中的效果
  • ¥50 如何快速查看手机目标app的主要服务器ip
  • ¥15 (标签-stm32|关键词-m3)
  • ¥15 matlab中频率调制法代码的解读
  • ¥15 ceph的对象、块、文件相关问题求解答