{"id":20648473,"url":"https://github.com/henriquesebastiao/cs50x","last_synced_at":"2026-04-17T13:05:02.369Z","repository":{"id":130577133,"uuid":"557023062","full_name":"henriquesebastiao/CS50x","owner":"henriquesebastiao","description":"Minhas soluções para os problemas do CS50x.","archived":false,"fork":false,"pushed_at":"2024-06-22T01:09:07.000Z","size":578,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T01:48:53.623Z","etag":null,"topics":["cs50","cs50course","cs50problemsets","cs50problemsetssolved","cs50project","cs50x"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/henriquesebastiao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-25T00:17:50.000Z","updated_at":"2024-06-22T01:09:11.000Z","dependencies_parsed_at":"2024-06-22T14:38:28.577Z","dependency_job_id":"ec0e276d-aff9-4965-9133-981f98cfe03a","html_url":"https://github.com/henriquesebastiao/CS50x","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henriquesebastiao%2FCS50x","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henriquesebastiao%2FCS50x/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henriquesebastiao%2FCS50x/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henriquesebastiao%2FCS50x/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henriquesebastiao","download_url":"https://codeload.github.com/henriquesebastiao/CS50x/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242737017,"owners_count":20177092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cs50","cs50course","cs50problemsets","cs50problemsetssolved","cs50project","cs50x"],"created_at":"2024-11-16T17:08:39.002Z","updated_at":"2026-04-17T13:05:02.358Z","avatar_url":"https://github.com/henriquesebastiao.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CS50x\n\nMinhas soluções para os problemas do curso [CS50x](https://cs50.harvard.edu/x/).\n\n## Compilando\n\nA etapa dita \"compilação\" é composta por quatros passos:\n\n- Pré-processamento\n- Compilação\n- Assemblagem\n- Ligação\n\n1. No processo de pré-processamento, o compilador irá processar as diretivas de pré-processamento, como `#include` e `#define`. Meio que um \"copiar e colar\" do conteúdo dos arquivos incluídos no seu próprio arquivo, para que o compilador saiba o que está sendo referenciado, como são definidas as funções e variáveis que você incluiu.\n\n2. Na compilção o código é traduzido de C para Assembly, que é uma linguagem de baixo nível, mais próxima do hardware.\n\n3. Na assemblagem, o código em Assembly é traduzido para binário, que é o código de máquina que o processador entende.\n\n4. Por fim, na ligação, o código binário é ligado com as bibliotecas necessárias incluídas no código, como a `cs50.h`, que contém funções que não são nativas do C e talvez `stdio.h`, que contém funções de entrada e saída. No final, é gerado um arquivo executável.\n\nNestes exemplos vamos compilar o araquivo `hello.c` e gerar o executável.\n\n### Make\n\n```bash\nmake hello\n./hello\n```\n\n### Clang\n\n```bash\nclang hello.c\n./a.out\n```\n\n```bash\nclang -o hello hello.c\n./hello\n```\n\nPara incluir uma biblioteca que que não é nativa do C, é preciso passar a flag `-l` com o nome da lib.\nPor exemplo, para incluir `cs50.h`:\n\n```bash\nclang -o hello hello.c -lcs50\n./hello\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenriquesebastiao%2Fcs50x","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenriquesebastiao%2Fcs50x","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenriquesebastiao%2Fcs50x/lists"}