포인터로 리턴하면 포인터만 복사되어 전달됩니다.
상대적으로 적은 부하가 걸립니다. 참조로 리턴하면 전혀 복사없이 바로 리턴됩니다.
만일 그냥 리턴하면 구조체 전체가 복사되어 전달되므로 빈번히 사용하면 상대적으로 부하가 많은 코드가 됩니다.
이윤관 님이 쓰신 글 :
: typedef struct {
: int a;
: int b;
: } COMM_T;
:
: COMM_T test_function(void)
: {
: COMM_T comm;
:
: comm.a = 100;
: comm.b = 200;
: return comm;
: }
:
: void printf_function(void)
: {
: COMM_T comm;
:
: comm = test_function();
: printf("a=%d \n", comm.a);
: printf("b=%d \n", comm.b);
: }
:
: 위함수에서 COMM_T를 포인터로 하지 않고 return 해도 문법적으로 문제가 되지 않나요?
: 전 항상 포인터로 해서 return했는데 다른분이 만든 코드를 보니까 위에서 처럼사용하고 있네요.
: 문제가 없는 코드인가요?
: COMM_T *comm으로 한후 return comm한것과 어떤 차이점이 있는건가요?
|