C에서 조건문 내부의 구조체 평가

de3ze

조건문 내부의 구조체 변수를 전체적으로 평가하여 각 요소를 작성할 필요가 없도록하는 방법이 있습니까? 예를 들어 다음 구조체가 주어집니다.

typdef struct
{
    int a;
    int b;
    int c;
} number;

number foo = {1, 2, 3};

다음과 같은 if 문에서 요소를 평가하고 싶습니다.

if (foo.a == 1 && foo.b == 2 && foo.c == 3)
{
    ...
} 

그러나 개별 요소를 나열하지 않고 전체 구조체를 평가하고 싶습니다. 나는 이것이 정확하지 않다는 것을 알고 있지만 이것은 내가 이루고 싶은 일을 따른 것입니다.

if (foo == {1, 2, 3})
{
    ...
}

귀하의 도움에 감사드립니다. 감사.

개미

복합 리터럴을 통해 임시 구조체를 나타낼 수 있습니다.

(number) { 1, 2, 3 }

그래서 더 논리적 인 시도는 다음과 같이 보일 것입니다.

if (foo == (number) { 1, 2, 3 })
  ...

그러나 C 언어는 구조체 객체 비교를위한 내장 연산자를 제공하지 않기 때문에 작동하지 않습니다. memcmp대신 사용할 수 있습니다.

if (memcmp(&foo, &(number) { 1, 2, 3 }, sizeof foo) == 0)
  ...

하지만 안타깝게도 구조체 객체가 포함 할 수있는 패딩 바이트의 내용을 예측할 수 없기 때문에 작동하지 않을 수 있습니다.

이 경우 가장 좋은 방법은 비교 함수를 수동으로 작성하는 것입니다.

inline bool is_same_number(const number *lhs, const number *rhs)
{
  return lhs->a == rhs->a && lhs->b == rhs->b && lhs->c == rhs->c;
}

그런 다음 복합 리터럴 기능과 함께 사용하십시오.

if (is_same_number(&foo, &(number) { 1, 2, 3 }))
  ...

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Angular 내의 대체 <li>에 대한 조건부 구문

분류에서Dev

내부에서 동일한 조건을 가진 if 문 내부의 while 루프?

분류에서Dev

구조체 포인터 내부의 문자열에서 char 가리 키기

분류에서Dev

Swift의 다른 구조체 내부에 배열 인 속성 내부에 구조체 추가

분류에서Dev

return 문 내부의 C ++ 조건

분류에서Dev

구조체 내부에 가변적 인 양의 구조체 객체 만들기 (C)

분류에서Dev

C에서 구조체의 런타임 조건부 필드

분류에서Dev

C의 구조 내부 구조 문제

분류에서Dev

API에서 json 데이터 가져 오기-> 속성 내부의 html을 새 객체 구조로 구문 분석

분류에서Dev

두 번째 파일을 사용하여 awk에서 if 문의 조건 평가

분류에서Dev

구조체의 C # StringBuilder 구조체에서 C DLL 가져 오기

분류에서Dev

c에서 다른 구조 내부의 구조 정의가 허용됩니까?

분류에서Dev

C에서 헤더 파일 내부의 구조체 인식

분류에서Dev

이 조건부 if 문에 다른 조건 추가

분류에서Dev

C ++ 벡터 내부, 즉 다른 벡터 내부에있는 구조체 내부의 구조체 값 변경

분류에서Dev

C ++의 공용체 내부 구조 액세스 문제

분류에서Dev

C의 구조체 문제

분류에서Dev

구조체의 문제 (C ++)

분류에서Dev

목록의 항목을 여러 문서에 조건부 추가

분류에서Dev

구조체 내에 구조체가 있는지 확인

분류에서Dev

C의 내부 중첩 구조체에 구조체 인스턴스 할당

분류에서Dev

C ++ : 구조체 내의 함수가 구조체와 함께 복사됩니까?

분류에서Dev

C의 구조체 내부에있는 다른 구조체에 구조체 할당

분류에서Dev

조건부 내부 조인 문에서 둘 이상의 값 반환 (VBA / SQL)

분류에서Dev

babel / webpack에서 컴파일 시간에 조건문 평가

분류에서Dev

C ++ 중첩 조건부 연산자 평가 순서

분류에서Dev

Spark Scala의 Spark Dataframe에서 구조체의 요소 인 구조체의 요소 내부에 요소를 추가하는 방법

분류에서Dev

구조 객체의 평등

분류에서Dev

C의 구조체 내에서 포인터가 가리키는 자유 배열

Related 관련 기사

  1. 1

    Angular 내의 대체 <li>에 대한 조건부 구문

  2. 2

    내부에서 동일한 조건을 가진 if 문 내부의 while 루프?

  3. 3

    구조체 포인터 내부의 문자열에서 char 가리 키기

  4. 4

    Swift의 다른 구조체 내부에 배열 인 속성 내부에 구조체 추가

  5. 5

    return 문 내부의 C ++ 조건

  6. 6

    구조체 내부에 가변적 인 양의 구조체 객체 만들기 (C)

  7. 7

    C에서 구조체의 런타임 조건부 필드

  8. 8

    C의 구조 내부 구조 문제

  9. 9

    API에서 json 데이터 가져 오기-> 속성 내부의 html을 새 객체 구조로 구문 분석

  10. 10

    두 번째 파일을 사용하여 awk에서 if 문의 조건 평가

  11. 11

    구조체의 C # StringBuilder 구조체에서 C DLL 가져 오기

  12. 12

    c에서 다른 구조 내부의 구조 정의가 허용됩니까?

  13. 13

    C에서 헤더 파일 내부의 구조체 인식

  14. 14

    이 조건부 if 문에 다른 조건 추가

  15. 15

    C ++ 벡터 내부, 즉 다른 벡터 내부에있는 구조체 내부의 구조체 값 변경

  16. 16

    C ++의 공용체 내부 구조 액세스 문제

  17. 17

    C의 구조체 문제

  18. 18

    구조체의 문제 (C ++)

  19. 19

    목록의 항목을 여러 문서에 조건부 추가

  20. 20

    구조체 내에 구조체가 있는지 확인

  21. 21

    C의 내부 중첩 구조체에 구조체 인스턴스 할당

  22. 22

    C ++ : 구조체 내의 함수가 구조체와 함께 복사됩니까?

  23. 23

    C의 구조체 내부에있는 다른 구조체에 구조체 할당

  24. 24

    조건부 내부 조인 문에서 둘 이상의 값 반환 (VBA / SQL)

  25. 25

    babel / webpack에서 컴파일 시간에 조건문 평가

  26. 26

    C ++ 중첩 조건부 연산자 평가 순서

  27. 27

    Spark Scala의 Spark Dataframe에서 구조체의 요소 인 구조체의 요소 내부에 요소를 추가하는 방법

  28. 28

    구조 객체의 평등

  29. 29

    C의 구조체 내에서 포인터가 가리키는 자유 배열

뜨겁다태그

보관