durams
@durams
Reviews Written
-
Average Rating
-
안녕하세요!
Posts
Q&A
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
안녕하세요? 질문&답변 도우미 durams입니다.0.10 이진수: 숫자를 2진수로 나타내는 방법과 2의 보수에 대한 소개3.8 8진수와 16진수: 8진수, 16진수에 대한 소개3.10 문자형: ASCII table과 C 언어에서 문자를 사용하는 방법이렇게 세 영상에서 개념을 습득하시면 될 것 같습니다. 훑어보시고 추가로 질문이 있으시다면 해당 강의 영상에 질문 달아주시면 도와드리겠습니다.
- 1
- 1
- 22
Q&A
프로토타입과 함수간의 인자 불일치
안녕하세요? 질문&답변 도우미 durams입니다.이전 질문 관련해서 여러가지 검증을 하고 계신것 같습니다만, 말씀해주신 내용만으로는 정확히 어떤 상황인지 이해가 어렵습니다. 이전 제가 드렸던 답변과 더불어, '헤더 파일의 포함'은 해당 내용을 복사-붙여넣기 하는 것과 같다는 점에 유의하신다면 이해에 어려움은 없으실 것이라 생각됩니다.고민 후에도 명확한 답을 얻지 못하셨다면 해당 코드 첨부해주시면 도와드리겠습니다.
- 1
- 2
- 55
Q&A
12.12 헤더 관련 질문
안녕하세요? 질문&답변 도우미 durams입니다.해당 예제 상태에서는 .c 파일에서 헤더 파일을 include하지 않더라도 빌드가 됩니다. 다만 언제나 그런 것은 아니며, 정의가 있는 .c 파일에서는 선언이 존재하는 헤더 파일을 include하시는 것이 좋습니다.그 의미는 컴파일 단계에서 정확한 코드 작성을 강제하는 데 있습니다. my_rand.c에서 my_rand.h를 include 한다면 전방 선언 후 정의하는 것이기 때문에 자연스럽게 선언과 정의의 간 함수 시그니처가 같음이 보장됩니다.하지만 include 하지 않는다면 my_rand.c는 독립된 translation unit으로써 컴파일됩니다. 만약 my_rand.c와 my_rand.h의 함수 시그니처가 약간 다르다면, 컴파일과 링킹이 성공하더라도 실행 시 문제가 발생합니다. 예를 들어 my_rand.h에서는 int를 받도록 선언이 작성되어있지만, my_rand.c에서는 float를 받도록 정의가 작성되어있을 수 있겠죠.
- 1
- 2
- 51
Q&A
Visual Studio Community 2026 사용 문의
안녕하세요? 질문&답변 도우미 durams입니다.인터페이스가 약간 다를 수 있지만, 2022와 2026 둘 모두 강의를 수강하는 데에는 문제 없습니다. 수강 중 잘 진행이 안되는 부분이 생기시면 언제든지 질문 주세요.
- 1
- 2
- 107
Q&A
Q. 15:30, 부호가 있는 8비트 정수 질문
안녕하세요? 질문&답변 도우미 durams입니다.어떠한 비트 패턴이 있을 때 signed로 해석해야할 지 unsigned로 해석해야할 지 어떻게 판단하느냐는 말씀이시죠? 어떤 데이터 타입에 저장되었느냐에 따라 다르게 해석됩니다.예를 들어 unsigned char에 10011110이 저장되면 맨 왼쪽의 비트(MSB; Most Significant Bit)를 2^7 = 128이라고 해석하구요, signed char에 같은 패턴이 저장되면 MSB를 -2^7 = -128이라고 해석합니다.
- 1
- 2
- 53
Q&A
getchar(), putchar()
안녕하세요? 질문&답변 도우미 durams입니다.해당 코드에서 while문은 버퍼에서 꺼낸 하나의 문자가 개행 문자인지 확인하고, 개행 문자가 아닌 경우만 출력합니다. 만약 개행 문자를 만나게 되면 ch에 저장만 하고 출력은 하지 않습니다. 마지막의 putchar(ch)는 ch에 마지막으로 저장된 개행 문자를 출력하기 위함입니다.해당 줄을 주석 처리하고 실행해서 비교해 보시면 뭐가 다른지 눈치채실 수 있으실겁니다.
- 1
- 3
- 76
Q&A
교재 있나요?
안녕하세요? 질문&답변 도우미 durams입니다.따로 교재는 없습니다만, 교수님께서 강의를 제작하실 때 https://www.learncpp.com/ 을 주로 참고하신 것으로 알고 있습니다. 이외에 https://cppreference.com/ 도 문서화가 잘 되어있으니 참고하며 공부하시면 될 것 같습니다.
- 1
- 2
- 102
Q&A
강의자리ㅛ
안녕하세요? 질문&답변 도우미 durams입니다.죄송하게도 강의자료는 별도로 제공되지 않습니다. 개인적인 조언이라면, 직접 강의를 들으며 이해한 내용을 요약하고 정리해서 노트 등을 작성해보시는 것을 추천드립니다. 능동적으로 강의에서 소개되는 내용을 실습하는 것에 더불어 직접 내용을 조리있게 정리하게 되면 공부 효과가 좋습니다.
- 1
- 2
- 75
Q&A
11:11 부근에 Something::temp와 Something::getValue의 앞에 &를 붙이는 이유가 뭔가요? (함수 이름은 포인터(주소)가 아닌가요?)
안녕하세요? 질문&답변 도우미 durams입니다.모든 함수 포인터가 자동으로 pointer로 decay되는것은 아닙니다. C언어에서는 함수 이름 식별자가 암시적으로 포인터로 decay되는것이 일반적이지만, 클래스가 존재하는 C++에서는 비정적멤버 함수의 경우 어느 클래스의 멤버함수인지, 그리고 어느 인스턴스에서 호출되었는지 그 정보가 필요합니다. 어느 클래스인지는 함수 포인터의 타입으로, 어느 인스턴스인지는 호출 시 지정하게 됩니다.또한 비정적 멤버 함수의 경우는 함수 포인터 정의 시 &가 무조건 필요합니다.&를 붙이지 않았을 때에도 에러 없이 정상 작동한다고 하셨지만, 혹 함수가 static으로 되어있지는 않은지 확인이 필요합니다. 대신 정적 멤버 함수는 일반 함수와 동일하게 취급되며, &가 없어도 괜찮습니다.비정적 멤버 함수에 &를 붙여야 하는 이유는 C++에서 추가된 멤버 함수를 명확하게 처리하기 위함이며, 일반 함수와 정적 멤버함수에는 &를 명시적으로 붙이지않아도 되는 이유는 전통적인 C 구문에 대한 하위 호환성이라고 알려져 있습니다. . C++ draft에는 아래와 같이 작성되어 있습니다.A pointer to member is only formed when an explicit & is used and its operand is a qualified-id not enclosed in parentheses.함수 이름은 포인터가 아닌 것이지 않냐?는 질문에는... 둘은 원래 같지 않습니다. 배열과 포인터가 엄밀히 같지 않은 것처럼요. 함수의 이름은 컴파일러에 의해 함수가 위치한 주소로 변환될 뿐입니다.
- 1
- 3
- 77
Q&A
using namespace std; 선언 후에 std::를 하는 이유가 궁금합니다
안녕하세요? 질문&답변 도우미 durams입니다.강의에서 사용하신 이유는 아마 교수님께서 명확성을 나타내기 위함이라고 생각됩니다. 다만 ::이 단순히 명확성을 나타내는것 외에도 정말로 필요한 경우가 존재합니다.예를 들어, algorithm 헤더에는 std::sort라는 정렬 함수가 존재하는데요, 아래와 같이 sort라는 변수를 사용자가 정의해버리면 컴파일러는 sort가 둘 중 어느것인지 판단하지 못합니다.#include #include using namespace std; int sort = 20; int main() { cout 위 같은 경우에는 std::sort로 작성하면 algorithm 헤더의 sort를 사용할 수 있고, ::sort로 작성하면 사용자가 작성한 글로벌 네임스페이스의 sort 변수를 사용하게 되는 것이죠.
- 1
- 2
- 86




