structure and union types.ppt
文本预览下载声明
Structure and Union Types 程式設計 潘仁義 CCU COMM Structure Type Definition struct structured data objects, can be defined by users #define STRSIZ 10typedef struct { char name[STRSIZ]; double diameter; /* diameter in km */ int moons; /* number of moons */ double orbit_time, /* years to orbit sun once */ rotation_time; /* hours to rotate once */} planet_t; int main (){ planet_t current_planet, blank_planet = {“”, 0,0,0,0}; int status = scan_planet(current_planet); /* 等會看 */ current_planet = get_planet(); print_planet(current_planet); … Assigning Values to Components of Variable current_planet Function with a Structured Input Parameter Function Comparing Two Structured Values for Equality Function with a Structured Output Argument Data Areas of main and scan_planet during Execution of status = scan_planet (current_planet); Function get_planet Returning a Structured Result Type Data Type planet_t and Basic Operations Parallel Arrays and an Array of Structures int id[50];double gpa[50]; struct { int id; double gpa;} stulist[50]; Union types Union To deal with situations in which one needs a data object that can be interpreted in a variety of ways. typedef union { int wears_wig; /*載假髮嗎?*/ char color[20];} hair_t; typedef struct { int bald; /*禿頭嗎?*/ hair_t h;} hair_info_t; Function That Displays a Structure with a Union Type Component Q A union 可以用 - 嗎? struct planet_t a, b;a = b; /* 可這麼寫嗎? */if(a == b) {} /* 可這麼寫嗎? */ (*plnp).name*plnp.nameplnp-nameplnp-name 小心:union 的內容該如何解釋? 也可寫成 plnp-diameter, plnp-moons, plnp-orbit_time, plnp-rotation_time);
显示全部