다른 변수를 기반으로 변수를 설정하는 함수가 있습니다.다른 변수에 대한 조건부 검사
if(!button_x.on)
button_x.on = 1;
if(!button_y.on)
button_y.on = 1;
if(!button_z.on)
button_z.on = 1;
.
.
.
x, y, z, ... 인 경우. 런타임에만 결정됩니다. 다양한 (100 초) 다른 경우에 대해 여러 조건을 갖는 것이 좋지 않습니다. C에서이 문제를 해결할 더 좋은 방법이 있습니까?
편집 : 나는 더 이상 내 예를 액자해야 .
if (!structureA.visited)
visit_structureA(); // does some operation
if (!structureB.visited)
visit_structureB();
if (!structureC.visited)
visit_structureC();
. . .
구조체의 수와 구조체 이름은 컴파일 타임에 알려지지 않습니다. 그러나 구조체 이름은 위에 표시된 특정 패턴을 따릅니다. 런타임에만 알려져 있습니다. 내가 좋아하는 매크로 뭔가를 사용하여 시도 :
#define VISIT(str) \
if (!structure##str.visited) \
visit_structure##str();
//In the function:
// str = 'known at runtime'
VISIT(str);
을하지만이 처리기 지시문은 컴파일 시간 동안 교체 및 런타임되지 않는다는 명백한 이유를 위해 작동하지 않을 것입니다. 이것에 대한 더 좋은 방법이 있는지 나는 확신하지 못하는가?
'button [i]'의 배열입니까? –
상태를 전환해야합니까? 즉, ON이면 ON, OFF이면 OFF가된다. – Mahesh