2020년 7월 31일 금요일

edX C 프로그래밍 수강, 맥에서 gcc 사용을 위해 명령행 개발자 도구 설치

edX의 C  Programming with Linux Certificate 프로그램을 수강하고 있다. 7개 코스가 하나의 프로그램을 이루는 것으로, 유료로 수강해 수료하면 Professional Certificate를 준다. 동기 부여를 위해 유료로 수강 중이고, 현재 3개 코스를 마치고 네 번째를 듣고 있다.

전에도 edX에서 수업을 몇 가지 들었는데, 지나고 나면 기억이 희미해지는 것이 아쉬웠다. 그래서 이번에는 수업 내용을 위키독스에 영어로 배우는 C 프로그래밍이라는 이름으로 정리하고 있다.

이 수업은 PC에 컴파일러를 설치하지 않고 웹 브라우저에서 바로 해볼 수 있다.

포인터 연산 수업을 듣고 객관식 문제를 풀다가 같은 문제를 자꾸 틀려서 코드를 직접 작성해서 테스트해보니 예상과 다르게 나왔다. 혹시나 컴파일러가 달라지면 다르게 작동할까 싶어, 맥북에서 한 번 더 테스트해보았다.

코드:

% cat pointer.c
#include 

int main(void) {
    int numbers[] = {4, -1, 8, 3, 0, -11};
    printf("%d", numbers[10]);
    return 0;
}


gcc를 사용하기 위해 명령행 개발자 도구를 설치:

% xcode-select --install

컴파일:

% gcc pointer.c
pointer.c:5:18: warning: array index 10 is past the end of the array (which
      contains 6 elements) [-Warray-bounds]
    printf("%d", numbers[10]);
                 ^       ~~
pointer.c:4:5: note: array 'numbers' declared here
    int numbers[] = {4, -1, 8, 3, 0, -11};
    ^
1 warning generated.


실행:

% ./a.out
1860979913

실행 결과를 확인하니 아차 싶었다. C 언어를 옛날에도 배웠고 지금도 다시 배우고 있음에도, 특성을 정확히 이해하지 못한 부분을 이 문제가 잘 지적해주었다.

2020년 7월 15일 수요일

Windows 10 초기화

다른 사람이 쓰던 PC를 얻었는데 Windows 10 계정이 그대로 남아있고 패스워드는 몰라서 바로 사용할 수 없는 상태였다. 그래서 Windows를 재설치해야 하는데, Windows 7 이후로는 재설치 해본 적이 없어서 좀 헤맸다.

찾아보니 간단한 방법이 있었다.

로그인 화면에서 키보드의 Shift 키를 누른 채로,
- 전원 아이콘을 클릭한 다음,
- '다시 시작'을 선택하고, 
- "다시 시작하면 이 PC를 사용하던..." 메시지의 '다시 시작' 버튼을 누른다.

'옵션 선택' 화면에서 '문제 해결'을 선택하고 '이 PC 초기화'를 선택한다.