Difficulty: Easy
Correct Answer: Correct — structures may mix unrelated types freely
Explanation:
Introduction / Context:
Structures in C are used to group related data, often of different types. This question checks awareness that structs are heterogeneous aggregates.
Given Data / Assumptions:
Concept / Approach:
A struct can hold fields of different types in sequence. The compiler arranges members with padding to meet alignment requirements; there is no constraint that members be identical types.
Step-by-Step Solution:
1) Define struct S { int id; char tag; double value; } — this is valid.2) The size reflects each member plus any padding.3) Access members using . or -> according to whether you have an object or a pointer.
Verification / Alternative check:
Checking sizeof(S) demonstrates inclusion of heterogeneous members and potential padding.
Why Other Options Are Wrong:
Option B: No single-type restriction exists.Option C/D: Alignment and member count do not impose such limits.Option E: The concept applies directly to C.
Common Pitfalls:
Ignoring padding when serializing structures or interfacing with hardware/ABI boundaries.
Final Answer:
Correct — structures may contain similar or dissimilar types.
Discussion & Comments