私はまだこの問題に遭遇していないので、教授が s を宣言した方法に違いありtypedef
ません。
次の(一部の)ヘッダー ファイルと、それを使用する付属のコードがあります。
polynomial.h -
#ifndef POLYNOMIAL_H_
#define POLYNOMIAL_H_
struct term {
int coef;
int exp;
struct term *next;
};
typedef struct term term;
typedef term * polynomial;
#endif
polynomial.c -
#include "polynomial.h"
void display(polynomial p)
{
if (p == NULL) printf("There are no terms in the polynomial...");
while (p != NULL) {
// Print the term
if (p.exp > 1) printf(abs(p.coef) + "x^" + p.exp);
else if (p.exp == 1) printf(abs(p.coef) + "x");
else printf(p.coef);
// Print the sign of the next term, if it applies
if (p.next != NULL) {
if (p.next->coef > 0) printf(" + ");
else printf(" - ");
}
}
}
しかし、構造体のプロパティにアクセスしようとするたびに、次のようになります。
error: request for member 'exp' in something not a structure or union
インクルード、定義、およびそこにあるすべてのもの-構造体とtypedefを使用してCで同様のことを行いましたが、次の構文は使用しませんでした: typedef term * polynomial;
. これが問題を引き起こしているのではないかと思います。
p.exp
、p.coef
、およびとして構造体のメンバーにアクセスできない場合p.next
、どうすればよいですか?
PS - 正確に何typedef term * polynomial;
を/意味しますか? 「複数の項が1つの多項式を構成する」と想像しますが、 s へのアクセスがどのように変化するかがわかりませんterm
。