Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/henriquesebastiao/cs50x
Minhas soluções para os problemas do CS50x.
https://github.com/henriquesebastiao/cs50x
cs50 cs50course cs50problemsets cs50problemsetssolved cs50project cs50x
Last synced: about 1 month ago
JSON representation
Minhas soluções para os problemas do CS50x.
- Host: GitHub
- URL: https://github.com/henriquesebastiao/cs50x
- Owner: henriquesebastiao
- License: mit
- Created: 2022-10-25T00:17:50.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-22T01:09:07.000Z (6 months ago)
- Last Synced: 2024-06-22T14:38:26.166Z (6 months ago)
- Topics: cs50, cs50course, cs50problemsets, cs50problemsetssolved, cs50project, cs50x
- Language: C
- Homepage:
- Size: 564 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CS50x
Minhas soluções para os problemas do curso [CS50x](https://cs50.harvard.edu/x/2024/).
## Compilando
A etapa dita "compilação" é composta por quatros passos:
- Pré-processamento
- Compilação
- Assemblagem
- Ligação1. 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.
2. Na compilção o código é traduzido de C para Assembly, que é uma linguagem de baixo nível, mais próxima do hardware.
3. Na assemblagem, o código em Assembly é traduzido para binário, que é o código de máquina que o processador entende.
4. 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.
Nestes exemplos vamos compilar o araquivo `hello.c` e gerar o executável.
### Make
```bash
make hello
./hello
```### Clang
```bash
clang hello.c
./a.out
``````bash
clang -o hello hello.c
./hello
```Para incluir uma biblioteca que que não é nativa do C, é preciso passar a flag `-l` com o nome da lib.
Por exemplo, para incluir `cs50.h`:```bash
clang -o hello hello.c -lcs50
./hello
```