#include <stdio.h>
#include <unistd.h>
typedef struct {
unsigned int led1:1;
unsigned int led2:2;
unsigned int led3:3;
unsigned int led4:4;
} PortR;
void set_led_stute (PortR* register_prt, int led_num, int state) {
if(led_num==1) {
register_prt->led1=state;
} else if(led_num==2) {
register_prt->led2=state;
} else if(led_num==3) {
register_prt->led2=state;
} else if(led_num==4) {
register_prt->led2=state;
}
}
int main() {
PortR vr_register={0};
PortR*port_register=&vr_register;
for(int i=1; i<=4; ++i) {
printf("Включение светодиода %d\n", i
); sleep(1);
set_led_stute(port_register,i,0);
printf("Выключение светодиода"); sleep(1);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KdHlwZWRlZiBzdHJ1Y3QgewogICAgdW5zaWduZWQgaW50IGxlZDE6MTsKICAgIHVuc2lnbmVkIGludCBsZWQyOjI7CiAgICB1bnNpZ25lZCBpbnQgbGVkMzozOwogICAgdW5zaWduZWQgaW50IGxlZDQ6NDsKfSBQb3J0UjsKdm9pZCBzZXRfbGVkX3N0dXRlIChQb3J0UiogcmVnaXN0ZXJfcHJ0LCBpbnQgbGVkX251bSwgaW50IHN0YXRlKSB7CiAgICBpZihsZWRfbnVtPT0xKSB7CiAgICByZWdpc3Rlcl9wcnQtPmxlZDE9c3RhdGU7CiAgICB9IGVsc2UgaWYobGVkX251bT09MikgewogICAgcmVnaXN0ZXJfcHJ0LT5sZWQyPXN0YXRlOyAgIAogICAgfSBlbHNlIGlmKGxlZF9udW09PTMpIHsKICAgIHJlZ2lzdGVyX3BydC0+bGVkMj1zdGF0ZTsKICAgIH0gZWxzZSBpZihsZWRfbnVtPT00KSB7CiAgICByZWdpc3Rlcl9wcnQtPmxlZDI9c3RhdGU7CiAgICB9IAogICAgfQppbnQgbWFpbigpIHsKICAgICAgICBQb3J0UiB2cl9yZWdpc3Rlcj17MH07CiAgICAgICAgUG9ydFIqcG9ydF9yZWdpc3Rlcj0mdnJfcmVnaXN0ZXI7CiAgICAgICAgZm9yKGludCBpPTE7IGk8PTQ7ICsraSkgewogICAgICAgICAgICBwcmludGYoItCS0LrQu9GO0YfQtdC90LjQtSDRgdCy0LXRgtC+0LTQuNC+0LTQsCAlZFxuIiwgaSk7CiAgICAgICAgICAgIHNsZWVwKDEpOwogICAgICAgICAgIHNldF9sZWRfc3R1dGUocG9ydF9yZWdpc3RlcixpLDApOwogICAgICAgICAgICAgcHJpbnRmKCLQktGL0LrQu9GO0YfQtdC90LjQtSDRgdCy0LXRgtC+0LTQuNC+0LTQsCIpOwogICAgICAgICAgICBzbGVlcCgxKTsKICAgICAgICB9CiAgICByZXR1cm4gMDsKfQ==