Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- https://product.kyobobook.co.kr/detail/S000001952246
- 이웅모
- 나는 flux좋아...
- 출처 : 코딩애플
- 클린코드다시읽기
- 쏙속 들어오는 함수형코딩
- 출처는 코딩앙마
- 로버트 C마틴
- 에릭 노이먼
- 에릭 노먼드
- 에릭노이먼
- 오종택개발자님
- 출처는 코딩애플
- 쏙쏙 들어오는 함수형 코딩
- 김영한쌤
- 리엑트를 다루는 기술
- 유틸리티타입은 공식문서 자주 보자
- 출처 : 자바스크립트 딥다이브
- 함수형 코딩
- 큰돌의 CS책
- 자바스크립트 딥다이브
- 생코님Redux
- 출처 : https://www.boostcourse.org/
- 흥달쌤
- 고등애플
- 갈길이 멀구나
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 출처 : 코딩앙마
- 쏙쏙들어오는함수형코딩
- 쏙쏙 들어오는 함수형코딩
Archives
- Today
- Total
흰둥씨의 개발장
[모두를 위한 컴퓨터 과학(CS50 2019)] compile / debug / style 본문
컴파일링 과정
1) 전처리(precompile) : 전처리기에 의해 수행, #으로 시작하는 c의 소스코드들을 먼저 실행
2) 컴파일 (compile) : 컴파일러에 의해 수행, 소스코드 => 어셈블리 코드(저수준 프로그래밍 언어)
3) 어셈블(assemble) : 어셈블러에 의해 수행, 어셈블리 코드 => 머신코드(오브젝트코드)
4) 링크(link) : 생성된 머신코드(오브젝트 코드)들을 모아서 하나의 파일로 만들어줌
디버깅
버그: 개발자가 프로그램 내 의도하지 않은 실수
//bug.c
int main(void)
{
printf("hello\n");
}
위와 같이 입력하고 터미널에서 컴파일요청($make bug)하면 에러발생함
help50
$help50 make bug
help50을 요청 하면 터미널에 오류가 왜 발생했는지에 대한 좀더 명확한 답변을 들을수 있음
Asking for help...
bug.c:5:5: error: implicitly declaring library function 'printf' with type 'int (const char *, ...)'
[-Werror,-Wimplicit-function-declaration]
printf("hello\n");
Did you forget to #include <stdio.h> (in which printf is declared) atop your file?
ㄴ에러는 printf가 적힌 5행에서 발생함
ㄴ#include <stdio.h>(printf가 선언된)를 잊지 않았니?
printf
#을 10번 출력하는 코드를 만들고 싶어서 아래와 같은 코드를 작성했을때,
#include <stdio.h>
int main(void)
{
for(int i = 0 ; i <= 10 ; i++)
{
printf("#\n");
}
}
간단한 코드이기 때문에 문제가 어디인지를 바로 알아차릴수 있지만,
복잡할 때는 아래와 같이 printf를 활용해보는 것도 좋음
#include <stdio.h>
int main(void)
{
for(int i = 0 ; i <= 10 ; i++)
{
printf("i is now %i: ", i);
printf("#\n");
}
}
ㄴi조건을 i< 10으로 수정하면 됨을 알수 있음
debug50
CS50 IDE를 사용하면 debug50이라는 프로그램도 사용할 수 있음
$debug50 ./파일명
고무오리 디버깅
디버그 해도해도 안되면 잠깐 쉬면서 머리 환기하기
코드 디자인
CS50에서 제안하는 C언어 코드디자인
'[오늘의 공부] > CS' 카테고리의 다른 글
[algorithm] 배열 / 연결리스트 / 스택 / 큐 / 덱 (0) | 2023.08.13 |
---|---|
[모두를 위한 컴퓨터 과학(CS50 2019)] 메모리 (0) | 2023.06.20 |
[모두를 위한 컴퓨터 과학(CS50 2019)] 알고리즘 (0) | 2023.06.19 |
[모두를 위한 컴퓨터 과학(CS50 2019)] 배열 (0) | 2023.06.17 |
[모두를 위한 컴퓨터 과학(CS50 2019)] C언어 (1) | 2023.06.15 |