강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của dongq
dongq

câu hỏi đã được viết

C++ Học Theo và Thực Hành của Hong Jeong Mo

7.5 Các giá trị trả về khác nhau (giá trị, tham chiếu, địa chỉ, cấu trúc, bộ dữ liệu)

15:40초에 정의된 코드가 작동하는 것이 맞나요?

Viết

·

282

1

struct S
{
   int a, b, c, d;
};

S getStruct()
{
   S my_s{ 1,2,3,4 };
}

int main()
{
   S my_s = getStruct();
}

15:40초에 정의된 코드가 에러가 납니다.

C++

Câu trả lời 4

3

S getStruct()

{

    S my_s{ 1, 2, 3, 4 };

    return my_s;

}

이렇게 해주면 되네요 

그런데 gcc에서는 

struct S

{

   int a, b, c, d;

};

 

S getStruct()

{

   S my_s = {1234};

}

이렇게 해줘도 컴파일은 되는데

엉뚱한 값이 나옵니다. 

return my_s;

리턴값을 명시해주면 올바른 값이 나와요.

visual studio에서는 리턴값을 명시해주지 않으면

Error C4716 'getStruct': must return a value

라고 오류가 뜨네요. 이건 왜 그런건가요?

스스로도 찾아보겠습니다.

0

honglab님의 프로필 이미지
honglab
Người chia sẻ kiến thức

DirectX를 사용하시려면 별도의 과정을 거치셔야 합니다.

 

문법 사용에 실수가 있으셨던 것 같아서 제가 수정해봤습니다. 아래 코드 참고해보세요. 

 

#include <iostream>

 

using namespace std;

 

struct S

{

   int a, b, c, d;

};

 

S getStruct()

{

   S my_s = {1, 2, 3, 4};

}

 

int main()

{

   S my_s = getStruct();

 

   std::cout << my_s.a << " " << my_s.b<<std::endl;

}

 

0

dongq님의 프로필 이미지
dongq
Người đặt câu hỏi

visual studio 2019 community로 해도 에러가 납니다.
C4716 'getStruct': 값을 반환해야 합니다. 라고 뜹니다. 

혹시 수업시간에 언급하셨던 다이렉트X에서 사용하는 문법인가요?

0

honglab님의 프로필 이미지
honglab
Người chia sẻ kiến thức

에러가 어떻게 나는지는 모르겠는데, 컴파일러 버전이 낮아서 안될 수도 있습니다. 최근에 나온 visual studio 2019 community도 무료에요.

Hình ảnh hồ sơ của dongq
dongq

câu hỏi đã được viết

Đặt câu hỏi