为什么程序报错重定义;不同的基类型

编译时报错,“重定义;不同的基类型”要解决这个错误其实很easy,关键是知道这个错误是什么意思。看那个方法,并没有在其他地方也定义啊,怎么会重定义呢,不同的基类型又是什么意思呢?其实换句话说就很明白了:此方法在还未声明的地方就去使用了。由于使用它的地方与定义他的地方都是在同一个.c文...
为什么程序报错重定义;不同的基类型
你的这个问题,解释如下:

TTTT t; //在函数体外定义的一个结构体变量,他是一个静态变量。静态变量的初始化必须在定义时进行。因此,采用 t.a=0;这样给成员a赋初始值就是错误的。

代码可以改为:

#include "stdio.h"
typedef struct {
int a;
int b;
}TTTT;
TTTT t = {0}; //在定义的同时给成员赋初始值,此时a和b成员的值都是0
//t.a=0;
int main(void){
return 0;
}

enjoy!

【ush91优势实训】2010-10-16
首先你要告诉我你使用的编译器

因为有些编译器把struct结构中的变量当成私有变量和class类相似,
私有变量不能直接访问。
可以定义
内部函数
int seta(int temp){ this->a=temp;}
int setb(int temp1}{ this->b=temp1;}

t.seta(0);来给变量赋值2010-10-16
t.a = 0;

不能这样写!!2010-10-16
编译时报错,“重定义;不同的基类型”要解决这个错误其实很easy,关键是知道这个错误是什么意思。看那个方法,并没有在其他地方也定义啊,怎么会重定义呢,不同的基类型又是什么意思呢?其实换句话说就很明白了:此方法在还未声明的地方就去使用了。由于使用它的地方与定义他的地方都是在同一个.c文件中,所以没有报未声明的错误。这时,只要把它的实现放到使用的前面去,或者在前面加个函数的声明语句就OK了2012-11-06
mengvlog 阅读 374 次 更新于 2025-10-31 07:51:28 我来答关注问题0
檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部