Conteúdo do Curso
C Structs
C Structs
Anonymous Struct and Union
The C programming language has anonymous structures and unions, which provide the ability to define structures and unions without specifying a name.
Since there are no names, direct objects (or variables) are not created from them we use them as nested structures or unions.
You can use anonymous structs/unions when they are nested and will only be used where they are declared.
main
#include <stdio.h> struct ASCIItable { // Anonymous union union { char symbol; int num; }; }; int main() { struct ASCIItable AZtable; AZtable.num = 65; // number 65 is first symbol `A`, // number 97 is last `Z` symbol, hence 97 - 65 = 25, // so 26 iterations required (including number 0) for (int i = 0; i < 26; i++) printf("x.num = %d | x.symbol = `%c`\n", AZtable.num + i, AZtable.symbol + i); return 0; }
Note
Union allows the same set of bits to be represented differently depending on the context. For example, in an
ASCIItable
structure, you can interpret the same value as a character (usingsymbo
l) or as a numeric value (usingnum
). This can be useful when you need to quickly switch between different data views.
Tarefa
- Create an anonymous structure;
- Declare three float fields in it with the names
x
,y
,radius
; - Define the fields of the structure instance;
- Display the values of the structure fields.
Obrigado pelo seu feedback!
Anonymous Struct and Union
The C programming language has anonymous structures and unions, which provide the ability to define structures and unions without specifying a name.
Since there are no names, direct objects (or variables) are not created from them we use them as nested structures or unions.
You can use anonymous structs/unions when they are nested and will only be used where they are declared.
main
#include <stdio.h> struct ASCIItable { // Anonymous union union { char symbol; int num; }; }; int main() { struct ASCIItable AZtable; AZtable.num = 65; // number 65 is first symbol `A`, // number 97 is last `Z` symbol, hence 97 - 65 = 25, // so 26 iterations required (including number 0) for (int i = 0; i < 26; i++) printf("x.num = %d | x.symbol = `%c`\n", AZtable.num + i, AZtable.symbol + i); return 0; }
Note
Union allows the same set of bits to be represented differently depending on the context. For example, in an
ASCIItable
structure, you can interpret the same value as a character (usingsymbo
l) or as a numeric value (usingnum
). This can be useful when you need to quickly switch between different data views.
Tarefa
- Create an anonymous structure;
- Declare three float fields in it with the names
x
,y
,radius
; - Define the fields of the structure instance;
- Display the values of the structure fields.
Obrigado pelo seu feedback!
Anonymous Struct and Union
The C programming language has anonymous structures and unions, which provide the ability to define structures and unions without specifying a name.
Since there are no names, direct objects (or variables) are not created from them we use them as nested structures or unions.
You can use anonymous structs/unions when they are nested and will only be used where they are declared.
main
#include <stdio.h> struct ASCIItable { // Anonymous union union { char symbol; int num; }; }; int main() { struct ASCIItable AZtable; AZtable.num = 65; // number 65 is first symbol `A`, // number 97 is last `Z` symbol, hence 97 - 65 = 25, // so 26 iterations required (including number 0) for (int i = 0; i < 26; i++) printf("x.num = %d | x.symbol = `%c`\n", AZtable.num + i, AZtable.symbol + i); return 0; }
Note
Union allows the same set of bits to be represented differently depending on the context. For example, in an
ASCIItable
structure, you can interpret the same value as a character (usingsymbo
l) or as a numeric value (usingnum
). This can be useful when you need to quickly switch between different data views.
Tarefa
- Create an anonymous structure;
- Declare three float fields in it with the names
x
,y
,radius
; - Define the fields of the structure instance;
- Display the values of the structure fields.
Obrigado pelo seu feedback!
The C programming language has anonymous structures and unions, which provide the ability to define structures and unions without specifying a name.
Since there are no names, direct objects (or variables) are not created from them we use them as nested structures or unions.
You can use anonymous structs/unions when they are nested and will only be used where they are declared.
main
#include <stdio.h> struct ASCIItable { // Anonymous union union { char symbol; int num; }; }; int main() { struct ASCIItable AZtable; AZtable.num = 65; // number 65 is first symbol `A`, // number 97 is last `Z` symbol, hence 97 - 65 = 25, // so 26 iterations required (including number 0) for (int i = 0; i < 26; i++) printf("x.num = %d | x.symbol = `%c`\n", AZtable.num + i, AZtable.symbol + i); return 0; }
Note
Union allows the same set of bits to be represented differently depending on the context. For example, in an
ASCIItable
structure, you can interpret the same value as a character (usingsymbo
l) or as a numeric value (usingnum
). This can be useful when you need to quickly switch between different data views.
Tarefa
- Create an anonymous structure;
- Declare three float fields in it with the names
x
,y
,radius
; - Define the fields of the structure instance;
- Display the values of the structure fields.