0
#include <stdio.h>
#include <stdlib.h>

typedef struct {
    char name[20];
    int age;
} employee;

int main(int argc, char** argv)
{
    struct employee em1 = {"Jack", 19};
    printf("%s", em1.name);
    return 0;
}

コンパイラが言うように、変数には不完全な型の「従業員構造体」があるため、これは機能していないようです。どうしたの?

4

4 に答える 4

4

から構造体を削除

 struct employee em1 = {"Jack", 19};

使いました

typedef struct
{
char name[20];
int age;
}

もう構造体を入力する必要がないという目的があります。

于 2013-03-07T23:21:46.800 に答える
4

問題は、構造体を atypedefにしたのに、まだ で修飾していることstructです。

これはうまくいきます:

 employee em1 = {"Jack", 19};

または削除しtypedefます。

于 2013-03-07T23:21:58.243 に答える
0

使用struct employee em1 = ...するには、タグで構造体を宣言する必要があります。

struct employee /* this is the struct tag */
{
char name[20];
int age;
} em1, em2; /* declare instances */
struct employee em3;

typedefstructキーワードなしで使用する型エイリアスを作成します。

typedef struct employee employee;
employee em4;
于 2013-03-07T23:28:25.487 に答える