|
구조체 내에 내부 변수가 많은 것이고 모두 같은 타입이라고 할때
struct TEST{
uint8_t a: 1;
uint8_t b: 1;
...
}test;
uint8_t *x = &(test.a);
for( int i=0 ; i < sizeof(TEST)/sizeof(uint8_t); i++){
if(*x == 0){
...
}else{
...
}
x++;
}
실험은 안해봐서 모르지만 아마 작동은 할겁니다. (제 기억이 맞나면 구조체 내부 변수의 경우 주소가 이어져 있음으로)
(구조체 align때문에 안될 수도 있습니다만.)
그런데 보기도 어렵고 이해도 어렵고 이후 문제가 될 가능성이 높아 질 것같습니다.
구조체 님이 쓰신 글 :
: 통신을 이용해 각각의 비트 값을 저장 하여 확인하고 있는데요...
:
: 다름이 아니라 구조체에 값을 빠르게 확인할 방법이 없어서요...
:
: struct TEST{
: uint8_t a: 1;
: uint8_t b: 1;
: }test;
:
: test 라는 구조체가 있다고 합시다..
:
: 이 test 구조체에 a와 b의 값이 0인지 1인지 알고 싶습니다...
:
: 그런데 저런게 100개가 있다고 하면 코드상 test.a, test.b.... 이런식으로 하면 너무 길어지잔아요..
:
: 그래서 test 구조체의 0비트부터 100비트까지 간단하고 빠르게 값을 확인 할 수 있는 방법이 있을까요??
:
: 많은 조언 부탁드립니다 ㅠㅠ;;
|