#include <stdio.h>
#include <string.h>
typedef struct Books {
char title[50];
char author[50];
char subject[100];
int book_id;
} Book;
int main() {
Book book;
strcpy(book.title, "C Programming");
strcpy(book.author, "Nuha Ali");
strcpy(book.subject, "C Programming Tutorial");
book.book_id = 6495407;
printf("Book title : %s\n", book.title);
printf("Book author : %s\n", book.author);
printf("Book subject : %s\n", book.subject);
printf("Book book_id : %d\n", book.book_id);
return 0;
}
この例では、ブックは新しいデータ型か、構造の代替名ですか?typedefをC言語で使用すると、新しい型または型名のみが作成されますか?
または他の言葉でコードがある場合:typedef unsigned char newDType;
newDType
unsigned char
に新しいデータ型または代替名ですか?
興味があるだけで公開されカーニハンとリッチー(K & R1)の初版に戻って...どのような違いそれはあなた(または誰)に作るのですか? –
@EugeneSh .:それは大きな違いを生むことができます。たとえば、 'typedef int my_int;'が別の型を作成した場合、 'int *'と 'my_int *'は互換性がなく、キャストなしでもう一方に割り当てることができませんでした。代わりに、それらは同じタイプです。 –