EXPLICAÇÃO (RESUMO):

Uma struct é uma variável especial que contém diversas outras variáveis normalmente de tipos diferentes. As variáveis internas contidas pela struct são denominadas membros da struct. Podemos dizer que as structs da linguagem C são o equivalente ao que se denomina registros em outras linguagens de programação.

Código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // Biblioteca Padrão para se mexer com Funções de Tempo

struct dados // Declarando a Struct
{
    int segundos; // Variavel dentro da Struct
    int minutos;    // Variavel dentro da Struct
    int horas;        // Variavel dentro da Struct

}; // Aqui não dei o nome da Struct, por que se eu Declarasse ela Seria Variável Global

void atualizar_horas(struct dados *t) // Iniciando a Função Atualizar_Horas
{
    (*t).segundos++; // Segundos será incrementado em +1
    if ( (*t).segundos == 60 ) // se segundos =60 irá zerar Segundos e Incrementará Minutos em +1
    {
        (*t).segundos = 0;
        (*t).minutos++;
    }
    if ((*t).minutos == 60 ) // se Minutos =60 irá zerar Minutos e Incrementará Horas em +1
    {
        (*t).minutos = 0;
        (*t).horas++;
    }
    if ( (*t).horas == 24 ) // se Horas =24 irá Zerar, Recomeçando novamente o Processo de Tempo
    {
        (*t).horas = 0;
    }
    return;
} // Fechando a Função Atualizar_Horas

void mostrar_horas(struct dados *t) // Iniciando a Função Mostrar_Horas 
{
    system("cls"); // Comando usado para Apagar a Tela
    printf("%ld : ", (*t).horas); //imprimindo Horas
    printf("%ld : ", (*t).minutos); //imprimindo Minutos
    printf("%ld", (*t).segundos); //imprimindo Segundos
    return;
} // Fechando a Função Mostrar_Horas

int main(void) // Iniciando Main
{
    struct dados time; // Instanciando a Struct

    time.segundos =0; // Atribuindo Valor 0 a Segundos
    time.minutos =0;  // Atribuindo Valor 0 a Minutos
    time.horas =0;    // Atribuindo Valor 0 a Horas

    int cont = 0; // Atribuindo Valor 0 ao Contador

    while(cont >=0) // Iniciando Loop Infinito
    {
        sleep(1); // Espera 1 Segundo
        atualizar_horas(&time); // Atualizando as Horas
        mostrar_horas(&time);   // Mostrando Horas
    } // Fim do Loop Infinito
    return;
}// Fechando Main
Créditos pelo Tutorial : Sup_Anjo