Menu
CoddyTech

Declarando uma Struct

Parte da seção Lógica e Fluxo do Journey de C da Coddy. Lição 39 de 63.

Agora que você entende o que é uma struct, é hora de aprender a criar seus próprios tipos de estrutura. Declarar uma struct em C segue uma sintaxe específica que define o modelo para o seu tipo de dado personalizado.

A sintaxe básica para declarar uma struct é:

struct StructureName {
    datatype member1;
    datatype member2;
    // ... mais membros
};

Veja como cada parte funciona: você começa com a palavra-chave struct, seguida por um nome para sua estrutura; depois, lista todas as variáveis membro entre chaves. Cada membro é declarado como uma variável comum, com seu tipo de dado e nome. Não se esqueça do ponto e vírgula após a chave de fechamento!

Por exemplo, para criar uma estrutura que represente um ponto no espaço 2D:

struct Point {
    int x;
    int y;
};

Esta declaração cria um novo tipo de dado chamado struct Point que contém dois membros inteiros: x e y. Depois de declarado, esse tipo de estrutura pode ser usado em todo o seu programa para criar variáveis que armazenam informações de coordenadas de forma organizada.

challenge icon

Desafio

Fácil

Crie um programa em C que defina uma struct para representar um livro em um sistema de biblioteca. Seu programa deve:

  1. Definir uma struct chamada Book que contenha os seguintes membros:
    • Um inteiro id para armazenar o número de identificação do livro
    • Um array de caracteres title com tamanho 50 para armazenar o título do livro
    • Um inteiro pages para armazenar o número de páginas
    • Um float price para armazenar o preço do livro
  2. Depois de definir a struct, imprima uma mensagem de confirmação: Book struct defined successfully!
  3. Imprima o tamanho da struct Book em bytes usando sizeof(struct Book) no formato: Size of Book struct: [size] bytes
  4. Imprima o tamanho de cada membro individualmente, passando seu tipo para sizeof(), por exemplo, sizeof(int) para id, sizeof(char[50]) para title e sizeof(float) para price:
    • Size of id: [size] bytes
    • Size of title: [size] bytes
    • Size of pages: [size] bytes
    • Size of price: [size] bytes

Os membros totalizam 62 bytes, mas sizeof(struct Book) retorna 64: o compilador adiciona 2 bytes de preenchimento após title para que pages comece em um múltiplo de 4.

Este desafio testa sua compreensão da sintaxe de declaração de struct, incluindo o uso correto da palavra-chave struct, declarações de membros com tipos de dados apropriados e o ponto e vírgula após a chave de fechamento. Você também explorará como C aloca memória para membros de uma struct usando o operador sizeof().

Lembre-se de que os valores exatos de tamanho podem variar dependendo da arquitetura do seu sistema, mas a sintaxe de definição da struct deve estar correta para que o programa compile e execute com sucesso.

Experimente você mesmo

#include <stdio.h>

int main() {
    // TODO: Defina sua struct Book aqui
    
    
    // Imprima a mensagem de confirmação
    printf("Book struct defined successfully!\n");
    
    // TODO: Imprima o tamanho da struct Book e de seus membros
    
    
    return 0;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de C online