내가 아까 글을
"
같은 두 구조체가 있는데
그 두 구조체의 멤버 변수들을 하나씩 다 비교를 해
그런 다음에 값이 다른 멤버 변수들만 출력을 하는 프로그램을 짜고 싶어
그런데 그 멤버 변수들이 너무 존나 많을 때 노가다로 if - else 문 돌린 다음에
일일이 printf 로 찍는 방법밖에 없는거야?
좀 더 좋은 방법 없을까? 조언 좀 구하고 싶어
"
라고 올렸는데 누가 'sturct A {fileds} 이렇게 선언된 구조체가있고, struct A varaibles[2] 이렇게 만든다음 각각의 구조체변수 내부의 변수들을 비교하고싶다는거?' 라는 댓글을 달았어.
비슷해, 나는 typedef struct 해서 A 자료형 만들었고 A str1, str2; 이렇게 만들어서 비교하는 프로그램 짜고 있었어.
그런데 문제는 멤버 변수가 너무 많을 것 같아, 30~40개?
당장 떠오르는 것으로는 memcmp밖에 생각이 안나는데 이건 다름의 여부만 체크해 볼 수 있을 것 같고, 내가 질문했던 것의 답변은 아닌 것 같아...
일단 그냥 일일이 타이핑하고는 있는데 좀 더 좋은 방법이 있을까 생각중이야. 간단하게라도 조언해주면 고맙겠어
(아까는 내가 좀 바빠서 댓글 달린 거 못봤어 미안. 이젠 즉각 답변할게 ㅠㅠ)
그건 모르나보네...
하긴 영어로 쳐도 멤버변수가 3개 있을 때까지만 예제 나와있고 너무 많으면 비교를 안하는듯
memcmp랑 유사하게 만들면 되는거 아님 ?
첫번째 멤버부터 포인터로 가리키고 / dereferencing 된 값 비교 / 포인터 증가
값 비교해서 다르면 포인터로 멤버변수 위치 알수있잖아
앗 시도해볼까... 고마워!
근데 메모리번지에 있는 변수 이름 가져오는게 있나? 모르겠네 ㅋㅋ
https://www.google.com/amp/s/www.geeksforgeeks.org/how-to-print-a-variable-name-in-c/amp/
ㅋㅋㅋ찾아보니 이러라던데 시도하려고 ㅋㅋ ㄱㅅㄱㅅ