Hiểu Cho đúng Về Từ Khóa Typedef Trong Ngôn Ngữ C

Thông thường, chúng ta vẫn cho rằng cú pháp của typedef là:

typedef OldType NewType;

Nó đúng với hầu hết các trường hợp phổ biến, ví dụ:

typedef int my_int; my_int x;

Nhưng cú pháp ấy sẽ không giải thích được cho các cách viết sau:

typedef int my_int, his_int, her_int; my_int my; his_int his; her_int her; typedef int (*func)(int); func f; typedef int pa[50]; pa p;

Mặc dù viết như vậy hoàn toàn hợp lệ.

Cho nên ta phải tìm một cú pháp tổng quát phù hợp cho tất cả các cách viết trên.

Để ý rằng, phần phía sau typedef chính là một câu lệnh khai báo (declare) thực sự trong C. Mà đã là một câu lệnh khai báo thì phải có tính chất cho biết: các biến x1, y1, … cùng thuộc kiểu dữ kiệu A nào đó, các biến x2, y2, … cùng thuộc kiểu dữ liệu B nào đó, …

typedef đặt đầu câu sẽ làm cho các biến x1, y1, … (hoặc x2, y2, …) không còn là biến nữa mà trở thành kiểu dữ liệu A (hoặc B). Sau này khi khai báo biến a thuộc kiểu x1 (hoặc a thuộc kiểu y1, …) thì tức là a thuộc kiểu A. Tương tự cho x2, y2, … với kiểu B.

Nói cách khác, trong câu lệnh P có typedef, hãy bỏ typedef đi để được câu lệnh Q, thấy có biến a trong Q, thì sau này ở câu lệnh R, biến x thuộc kiểu a sẽ được đối xử như chính biến a trong Q (biến x có kiểu giống hệt kiểu của biến a).

Share this:

  • Facebook
  • LinkedIn
  • More
  • Email
  • X
  • Tumblr
Like Loading...

Related

Từ khóa » Câu Lệnh Typedef