Macro offsetof() trong C (chi tiết nhất)




Macro offsetof() trong C

Macro offsetof(type, member-designator) trong Thư viện C chuẩn cho kết quả một hằng số nguyên của kiểu size_t mà là offset (đơn vị byte) của một thành viên cấu trúc từ phần đầu của cấu trúc đó. Thành viên được cung cấp bởi member-designator, và tên của cấu trúc được cung cấp bởi type.

Khai báo Macro offsetof() trong C

Dưới đây là phần khai báo cho offsetof() Macro.

offsetof(type, member-designator)

Tham số

  • type − Đây là kiểu lớp trong đó member-designator là một mệnh danh hợp lệ.

  • member-designator − Đây là mệnh danh thành viên của kiểu lớp.

Trả về giá trị

Macro này trả về giá trị của kiểu size_t mà là giá trị offset của thành viên trong kiểu type.

Ví dụ

Chương trình C sau minh họa cách sử dụng của offsetof() Macro.

#include 
#include struct student 
{
   char name[50];
   char school[50];
   int rollno;
};
   
int main()
{
   printf("name offset = %d byte trong student struct.\n",
   offsetof(struct student, name));   printf("class offset = %d byte trong student struct.\n",
   offsetof(struct student, school));   printf("rollno offset = %d byte trong student struct.\n",
   offsetof(struct student, rollno));   return(0);
} 

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Macro offsetof trong C

Các bài Thư viện C phổ biến khác tại VietJack:


stddef-h-trong-c.jsp