컴파일 명령어를 입력 할 수 있나요?
gcc 의미, -o 인자의 의미, *.c -> 확장자가 c인 모든 파일 연결하여 main 인 이름으로 실행파일을 만듦.
-o : 실행파일의 이름을 지정
-c : 오브젝트 파일을 만듦.
컴파일러는 ( ex) gcc ) 우리가 짠 high level 언어를 기계가 알아 들을 수 있는 low level 언어로 바구어 주는 역할을 하는데,
이 과정은 각각 전처리, 컴파일, 어셈블, 링크 과정을 거친다.
오브젝트 파일들을 연결하여 실행파일을 만드는 것이 링커.
컴파일 명령어에 대한 이해
gcc -Wall -Werror -Wextra ./*.c -o main
Norminette 통과
42헤더가 포함?
각각의 함수에 대한 로직 및 알고리즘
https://onecellboy.tistory.com/146
https://frontjang.info/entry/GCC-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%97%90-%EB%8C%80%ED%95%B4-1-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%9D%98-4%EA%B0%80%EC%A7%80-%EB%8B%A8%EA%B3%84
https://twofootdog.tistory.com/51
void rush(int x, int y);
int main(void)
{
rush(5, 4);
return (0);
}
| 프로토타입(Prototype)이란?
함수가 호출되기 전에 미리 정의되어야 한다고 바로 위에서 말씀드렸습니다.그렇다면 main 함수 위에 사용자 정의 함수를 작성하면 될까요? 물론 그렇게 해도 되지만,프로그램을 개발하면서 많은 사용자 정의 함수를 만들다 보면 main함수는 점점 아래로 밀릴 것입니다.그렇게 된다면 문서를 보기 힘들어지며, 또한 함수들이 많아지면 각 함수를 찾을 때 찾기 힘들어집니다.이때 필요한 것이 바로 프로토타입(Prototype)입니다.
#include <unistd.h>
void ft_putchar(char c)
{
write(1, &c, 1);
}
void ft_putchar(char c);
void print_row(int x, char start, char middle, char end)
{
int col;
col = 0;
while (col < x)
{
if (col == 0)
{
ft_putchar(start);
}
else if (col == x - 1)
{
ft_putchar(end);
}
else
{
ft_putchar(middle);
}
col++;
}
}
void rush(int x, int y)
{
int tempy;
tempy = 0;
if (x > 0)
{
while (tempy < y)
{
if (tempy == 0)
{
print_row(x, 'o', '-', 'o');
}
else if (tempy == y - 1)
{
print_row(x, 'o', '-', 'o');
}
else
{
print_row(x, '|', ' ', '|');
}
tempy++;
ft_putchar('\n');
}
}
}