怎么样消除警[Warning] initialization from incompatible pointe

C语言 码拜 7年前 (2017-04-13) 1741次浏览
[Warning] initialization from incompatible pointer type

#include<stdio.h>
struct date{
	int month;
	int day;
	int year;

};
int main(int argc,char const *argv[]){
	struct date today;
	today=(struct date){
		07,31,2014
	};
	struct date day;
	struct data *pdate=&today;
	day=today;
	day.year=2015;

	printf("Today"s date is %i-%i-%i.\n",today.year,today.month,today.day);
	printf("this month is %i-%i-%i.\n",day.year,day.month,day.day);
	printf("address of today is %p\n",pdate);

	return 0;
}
解决方案

20

说明一下,首先,date已经定义为结构体,后面使用date定义变量时,没有必要在前面添加struct。
其次,不知道是打错了还是源代码就是这样,第16行,date打成了data,要注意避免。
修改后代码如下:

#include<stdio.h>
struct date{
	int month;
	int day;
	int year;
};
int main(int argc, char const *argv[]){
	date today;
	today = date{
		07, 31, 2014
	};
	date day;
	date *pdate = &today;
	day = today;
	day.year = 2015;
	printf("Today"s date is %i-%i-%i.\n", today.year, today.month, today.day);
	printf("this month is %i-%i-%i.\n", day.year, day.month, day.day);
	printf("address of today is %p\n", pdate);
	return 0;
}

10

关于本人能否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:
A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自本人感觉很有成就感
A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)
假如想从A变成B的话,到本人的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”
悄悄告诉你,本人也经常date/data不分。怎么样消除警[Warning] initialization from incompatible pointe

20

struct data *pdate=&today;
改成
struct date *pdate=&today;

#include<stdio.h>
struct date{
	int month;
	int day;
	int year;
};
int main(int argc,char const *argv[]){
	struct date today = {
		07,31,2014
	};
	struct date day;
	struct date *pdate=&today;
	day=today;
	day.year=2015;
	printf("Today"s date is %i-%i-%i.\n",today.year,today.month,today.day);
	printf("this month is %i-%i-%i.\n",day.year,day.month,day.day);
	printf("address of today is %p\n",pdate);
	return 0;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么样消除警[Warning] initialization from incompatible pointe
喜欢 (0)
[1034331897@qq.com]
分享 (0)