inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

컴퓨터 구조에 대한 질문입니다.

해결됨

독하게 시작하는 C 프로그래밍

1.첫 질문은 제가 컴퓨터 구조를 따로 공부하고 싶은데 어떤 책을 참고해야할 지 모르겠습니다. 2번쨰 질문은 일단 모르겠어서 ,csapp 또는 structured computer organization 을 찾아가면서 공부 중인데 진도가 조금 안 나가고 생각보다 많이 막히는게 있어 맞는 방향인가 고민이 됩니다. 이 강의 관련해서 혼자 공부하면서 배웠던건 1.키보드의 입력값을 주면 전기신호가 컨트롤러에게 전달되고 2.컨트롤러가 신호를받아 데이터를 값으로 변환하고 3.그 값을 cpu로 보내서 인터럽트 요청을 하고 4.I/o bus를 통해 cpu가 데이터를 읽는다. 이게 레지스터로 가 저장이 된다는 것 까지 압니다. 더 깊게 알고 싶은데 어디서 어떤 순서로 배워야하는지 잘 모르겠습니다. 또한 컴퓨터 구조론을 공부하는데 또 궁금한게 어디까지 작동원리를 이해 하느냐에 또 발목이 잡힙니다. 예시를 들자면 어떤 책은 CPU에 PC에 집중적으로 설명하는데 반에 어떤 책은 ALU와 레지스터의 연산방법 등 이러한 체계가 연결이 안된다는 느낌이 들어 어 여기서는 이랬는데.. 왜 저기서는 이렇지? 이런 느낌이 크게 들어 막히는 감이 존재합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
나성훈 댓글 1 좋아요 0 조회수 102

비트필드 질문

해결됨

독하게 시작하는 C 프로그래밍

오른쪽부터 차례로 1 2 3 2 로 비트필드를 나누고 1 3 7 5 일때 101 111 11 1 여기서 5는 필드 초과되어서 버려서 01 111 11 1 가 됬는데 여기서 unsigned char* 로 포인터 형을 강제로 바꾸어 0111 1111 이렇게 만든상황에서 0x06 하고 엔드 연산을 할때 0111 1111 0000 0110 를 엔드 연산하면 0000 0110 인데 이걸 왜 >> 연산해서 3 으로 작은값나오게 했나요 ? 0000 0011 그에 대한 언급이 없으셔서 질문 남깁니다

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
kkkkkk 댓글 2 좋아요 0 조회수 94

2차원 배열 포인터 질문

해결됨

독하게 시작하는 C 프로그래밍

int a[2][3] = { {1, 2, 3}, {4, 5, 6} }; int sum = ( a+0) + ( a+1) + ( a+2); 여기서 내가 모르겠는 부분은 a는 배열이기 때문에 a[0]이 a의 주소로 참조 되고 주소를 100이라고 가정한다면 a는 100의 값이 저장된다. 이때 *a는 왜 1이 아니고 *a는 100번지라는 주소를 가지는 건가요?? 1차원 배열 포인터는 주소의 위치 값을 말한다고 배웠는데 배열에서는 적용이 다른 거 같아서 헷갈리는데 2차원 배열의 특징으로 외워야 하는 건가요? GPT 설명 🔎 핵심: a , *a , a[0] , &a[0][0] 모두 주소는 같아도 타입이 다르다 표현의미타입주소값 예시 a 2차원 배열의 첫 번째 행의 주소 int (*)[3] 100 *a 첫 번째 행 a[0]int[3] 100 a[0] 첫 번째 행 int[3] 100 &a[0][0] 첫 번째 요소의 주소 (즉, 1의 주소) int* 100 **aa[0][0] == 1 int (값) 1 즉 *a == a[0] == 주소 , **a == a[0][0] == 값 저는 a = 100 인데 *a도 100인게 이해가 안되요

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
조범상 댓글 3 좋아요 0 조회수 140

시작 프로젝트 설정

해결됨

독하게 시작하는 C 프로그래밍

솔루션1개에 여러 개의 프로젝트가 있을 때 컴파일하고 싶은 프로젝트 우클릭후 시작 프로젝트로 설정이 안나와요.. 어떻게 해야하나요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
양근영 댓글 2 좋아요 0 조회수 211

문자열 입/출력 맥북

해결됨

독하게 시작하는 C 프로그래밍

Mac OS 기반 맥북으로 수강하고 있는 학생입니다. VS code가 강의하실 때의 윈도우 기반 vs code랑 사뭇 다르네요.. 처음에 VS code 설치 후 기본 설정과 단축키도 다르고 _getch()도 맥에서는 오류가 뜨고 여러모로 윈도우가 아니여서인지 제한 사항이 많네요. 디버깅 예시 보여주시면서 메모리랑 같이 설명하실 때 저는 도저히 어디서 메모리와 주소를 찾아야 할지 모르겠더라구요.. 혹시 Mac OS 기반도 어떻게 설정하시는지 알 수 있을까요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
도헌 댓글 2 좋아요 0 조회수 151

getchar()함수의 반환형에 대해 질문드립니다.

해결됨

독하게 시작하는 C 프로그래밍

안녕하세요. 공부할 때 chat gpt를 자주 활용하고 있습니다. chat gpt에 따르면 getchar()함수를 반환하려면 char a; a = getchar(); 가 아니라 int a; a = getchar(); int형으로 반환을 받아야한다고 하더라구요. EOF를 구분하기 위해서라는데... 그런데 예제들을 보면 char형으로 받는 예제들도 많아서 질문드립니다. 감사합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
kdy4071 댓글 2 좋아요 0 조회수 158

개발 환경 문의드립니다

해결됨

독하게 시작하는 C 프로그래밍

안녕하세요. CS를 전공하고 있는 대학생입니다. 다음학기 들어야 할 코스와 선생님 강의의 커리큘럼이 겹치는 부분이 있어서, 이 강의를 꼭 들으면서 예습을 하고 싶어서 수강 결제를 진행했으나 후에 강의가 윈도우 개발환경에 맞춰져있다는 설명을 보았습니다. 맥북 유저이지만 대체할만한 강의를 찾지 못해서 되도록 이 강의를 수강하고 싶은데 어느 정도 불편함을 감수하고서라도 이 강의를 수강하는 것에 대해 조언해 주실 수 있을까요? 감사합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
Jade 댓글 2 좋아요 0 조회수 187

참조에 대해 헷갈리는 부분 질문합니다.

해결됨

독하게 시작하는 C 프로그래밍

강의 내용에서 엑셀 비유하신 부분이 정리하자면, C5에 15가 저장되있고, D7에는 C5의 위치가 저장 되어있다. D7은 참조이다. C5는 참조의 대상이다. 인데, D7은 C5를 참조했다. 라고 표현해도 되는 건가요? 참조는 D7이라고 했었는데, 참조가 명사가 되었다가 동사가 되었다가 하니 헷갈리네요.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
승기 댓글 1 좋아요 0 조회수 146

C프로그래밍 책 개정판 출판 계획

해결됨

독하게 시작하는 C 프로그래밍

강사님 혹시 독하게 시작하는 C프로그래밍 책이 개정된다는 이야기가 있던데 개정판 혹시 언제쯤 나오나요? 나오면 구매하려고 합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
KANG1234 댓글 2 좋아요 0 조회수 174

표준/입출력 필수실습문제 질문

해결됨

독하게 시작하는 C 프로그래밍

안녕하세요. 이름 변수 선언을 할 때 int형으로 선언을 하면 실행은 되는데 하단에 경고문이 뜹니다. 경고 내용이 무엇인지 잘 이해할 수 없어 질문을 남깁니다. 꼭 char형으로 선언해야 하는 이유가 있을까요? int와 char는 서로 크기만 다른 정수형인걸로 알고 있는데 제가 잘못 이해한 부분이 있을까요? 감사합니다!

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
kdy4071 댓글 2 좋아요 0 조회수 137

독하게 시작하는 c프로그래밍 구입했는데..

미해결

독하게 시작하는 C 프로그래밍

이번에 c언어 공부를 시작하기 위해 독하게 시작하는 c프로그래밍 강의 구입했습니다. 근데 책이 절판이네요ㅜㅜ 책 볼수 있는 방법 있을까요??

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
권민재 댓글 2 좋아요 0 조회수 239

.

해결됨

독하게 시작하는 C 프로그래밍

.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
전채영 댓글 1 좋아요 0 조회수 84

fgets()로 입력을 받을 때, 개행문자 \n을 없에고 받을 수 있을까요?

해결됨

독하게 시작하는 C 프로그래밍

#include <stdio.h> int main() { char name[32]; int age = 0; scanf("%d%*c", &age); fgets(name, sizeof(name), stdin); printf("%d살 %s 입니다", age, name); return 0; } age로 15를 입력하고, name으로 david를 입력했을 때, 결과가 """ 15살 david 입니다 """ 로, 줄바뀜이 된 채로 출력되는 것을 알 수 있습니다. fgets로 입력을 받을 시, 입력 마지막에 엔터 키를 누른 것 때문에 \n 개행문자가 입력되었기 때문으로 보여지는데, fgets()로 사용자의 입력을 받을 시, 개행 문자를 제하는 방법이 있을까요? 찾아보니 size_t len = strlen(name); name[len-1] = '\0'; 처럼, 문자열 마지막을 \n에서 임의로 null byte로 교체하는 방법을 사용하던데, scanf처럼 fgets()함수 내에서 자체적으로 해결 가능한 방법이 있을 지 알고 싶습니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
imwoodam 댓글 1 좋아요 1 조회수 225

필수 실습 문제 버블 정렬 질문

해결됨

독하게 시작하는 C 프로그래밍

강사님 안녕하세요 강의 듣고 있는 수강생입니다. 제목에 말씀드린 강의의 내용 중, '최소값을 찾아 첫번째 인덱스에 넣고 그 다음부터 해당 인덱스를 증가시켜서 다음 인덱스에 넣으면 된다.'라는 설명을 듣고 사진과 같이 코드를 구현했습니다. 그 후, 강사님의 코드와 비교를 해보았는데, 처음 for문의 시작부터 달라 gpt에 제 코드와 버블정렬에 대해 비교해달라고 했는데 제 코드는 버블정렬이 아니라는 답변을 받았습니다. 결과는 1,2,3,4,5의 오름차순으로 나오는데, 제 코드 중 어디가 잘못되었는지 알 수 있을까요 ? 감사합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
  • 수업질문
아야어여 댓글 2 좋아요 0 조회수 246

TEE OS뭔가요?

미해결

Arm 아키텍처: 트러스트존(TrustZone) [저자직강 3부-1]

안녕하세요. 트러스티드 커널이 TEE OS를 의미하는 건가요?

  • arm-architecture
  • armv7
  • armv8
  • assembly-language
TaeJoon Park 댓글 2 좋아요 0 조회수 267

scanf_s 함수 질문있습니다!

해결됨

독하게 시작하는 C 프로그래밍

scanf_s("%4c", szBuffer, _countof(szBuffer)); 이부분 예제에서는 왜 &szBuffer 이렇게 참조형식으로 넘겨주지 않은건가요 ??

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
pnj991122 댓글 2 좋아요 0 조회수 190

Hello World 이후 예제구문 관련

해결됨

독하게 시작하는 C 프로그래밍

VS studio에서 Hello World 처음 작성하고, 문자 입/출력 강의에 예제 작성하려고 하는데 어느 경로를 통해서 프로젝트 추가해서 작성가능한지에 대해 알려주셨으면 합니다. 찾다가 파일 > 추가 > 새 프로젝트 추가 경로를 통해서 추가는 했습니다만요.. 추가로 새로운 프로젝트는 삭제하고 싶은데 삭제가 안되고, 다른 프로젝트에 코드 작성하려니까 안되네요.. 해결방법이 뭘까요? 감사합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
velod 댓글 2 좋아요 0 조회수 161

가독성이 떨어지는 코드 or 바보같은코드 고민

해결됨

독하게 시작하는 C 프로그래밍

1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18 17 16 21 22 23 24 25 구현 문제에서 #include <stdio.h> int main() { int array[5][5] = { 0 }; int cnt = 0; for (int i = 0; i < 5; ++i) { if (i != 0 && i % 2 != 0) cnt = cnt + 6; else if (i!= 0 && i % 2 != 1) cnt = cnt + 4; for (int j = 0; j < 5; ++j) { if (i % 2 == 0) { array[i][j] = ++cnt; printf("%d ", array[i][j]); } else { array[i][j] = --cnt; printf("%d ", array[i][j]); } } putchar('\n'); } return 0; } 이렇게 코드를 짜봤는데 가독성도 떨어지고 제 생각에 좋은 코드가 아니라는 생각이 듭니다 하지만 이런 방법아니면 생각이 잘 안날때 어떤식으로 사고해야될까요? 효율적인 코드가 나올때까지 고민을 멈추면안된다거나 일단 구현은 되었으니 넘어가고 좋은 해결법을 본다거나

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
uwkdwkdwkd 댓글 1 좋아요 0 조회수 181

산술연산자 강의 3분39초경 단축키가 무엇인가요?

해결됨

독하게 시작하는 C 프로그래밍

addSample.c 소스파일과 tmpResult.c 소스파일을 비교해주실때 창을 넘어가시는데요. 단축키 써서 이동하시는거 같은데 어떻게 하신걸까요? 뭔가 멋져보입니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
slrrpy1234 댓글 3 좋아요 0 조회수 228

scaf_s 함수 사용시 경고 표시

해결됨

독하게 시작하는 C 프로그래밍

강사님 컴퓨터에서는 scanf_s("%4c", szBuffer, _countof(szBuffer)); 여기에 밑줄이 안생깁니다. 하지만 제 컴퓨터 비쥬얼스튜디오 에서는 밑줄이 생기면서 경고가 뜨네요 (shift F5 눌러서 실행 하면 실행은 잘 됩니다.) 경고는 C6328입니다. 크기 불일치: 'unsigned __int64'이(가) Param (3)으로 전달되었습니다. 다음 호출에는 'unsigned int'이(가) 필요합니다. 'scanf_s'. 그래서 경고를 구글링 해보니까 countof 명령어? 의 데이터 크기가 안맞는거 같은데 강사님의 설명 듣고싶습니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
slrrpy1234 댓글 1 좋아요 0 조회수 317

인기 태그

인프런 TOP Writers

주간 인기글