日期:2014-05-16  浏览次数:20742 次

结构体定义
下面三个那个正确?为什么?
一个是:
struct {
  struct{
  struct {
  double x,y,z;
  double rms;
  char residue[8];
  char name[8];
  int number;  
  int resnum;
  int selected;
  } ATOM[MAXS];
  int atoms; 
  char residue;  
  int residueno; / 
  } RESIDUE;
 double xcen,ycen,zcen;
 int atoms;
 char filename[800];
 //char residue;  
 int residueno;  
} molecule;

另一个是:
typedef struct {
 struct {
  double x,y,z;
  double rms;  
  char residue[8];  
  char name[8];
  int number;
  int resnum;
  int selected;
  } atm[MAXATMS];

  struct{
  int atoms;
  char residue; / 
  //int number;
  int residueno;  
  }RESIDUE;

 double xcen,ycen,zcen;
 int atoms;  
 char filename[800];  
 char residue;  
 int residueno;  
}molecule;

第三个是:
typedef struct {
 double x,y,z;  
 double rms;  
 char residue[8]; // 
 char name[8];
 int number;  
 int resnum;
 int selected;
 }ATOM[MAXS];

typedef struct{
 ATOM *atom;
 int atoms; 
 char residue;  
 int residueno;  
 }RESIDUE;

typedef struct{
 RESIDUE *residue;
 double xcen,ycen,zcen;
 int atoms;  
 char filename[800];  
 int residueno;  
 }molecule;

------解决方案--------------------
定义没错 是你引用错误。你应该是用的第三种方式。试试这个呢 molecule.residue->atoms = 1
------解决方案--------------------
除第一种外,其他的根据具体需求来确定